Skip to content

Commit 89866a9

Browse files
committed
Translated object/hasownproperty.
1 parent fd4c532 commit 89866a9

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

doc/tr/object/hasownproperty.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
## `hasOwnProperty`
2+
3+
Bir özelliğin nesnenin [prototip zinciri](#object.prototype) üzerinde bir yerde
4+
**değil**, *kendisi* üzerinde tanımlandığını belirlemek için, `Object.prototype`
5+
kalıtımı ile tüm nesnelerin sahip olduğu `hasOwnProperty` metodunun kullanılması
6+
gerekir.
7+
8+
> **Not:** Bir özelliğin `undefined` olduğunu kontrol etmek yeterli **değildir**.
9+
> Bir özelliğin değeri `undefined` olarak atandığı halde özelliğin kendisi
10+
> pekala mevcut olabilir.
11+
12+
`hasOwnProperty` JavaScript'te nesne özellikleri üzerinde çalışıp prototip
13+
zincirinin tümünü **dolaşmayan** tek şeydir.
14+
15+
// Object.prototype'a bar özelliğini ekle
16+
Object.prototype.bar = 1;
17+
var foo = {goo: undefined};
18+
19+
foo.bar; // 1
20+
'bar' in foo; // true
21+
22+
foo.hasOwnProperty('bar'); // false
23+
foo.hasOwnProperty('goo'); // true
24+
25+
Sadece `hasOwnProperty` beklenen doğru sonucu verecektir, nesne özellikleri
26+
üzerinde iterasyon yaparken bu çok önemlidir. Bir nesnenin *kendisi* üzerinde
27+
değil de protip zinciri üzerinde bir yerde tanımlanmış olan özelliklerini
28+
çıkarmanın başka hiçbir yolu **yoktur**.
29+
30+
### `hasOwnProperty` özelliği
31+
32+
JavaScript `hasOwnProperty` adının bir özellik olarak kullanılmasını engellemez;
33+
bu nedenle bir nesnenin bu isimde bir özelliğe sahip olması ihtimali varsa,
34+
doğru sonuç alabilmek için `hasOwnProperty `*haricen* kullanılmalıdır.
35+
36+
var foo = {
37+
hasOwnProperty: function() {
38+
return false;
39+
},
40+
bar: 'Here be dragons'
41+
};
42+
43+
foo.hasOwnProperty('bar'); // her zaman false verir
44+
45+
// hasOwnProperty haricen kullanıldığında 'this' foo olarak atanır
46+
{}.hasOwnProperty.call(foo, 'bar'); // true
47+
48+
### Sonuç
49+
50+
Bir nesnenin bir özelliği sahip olup olmadığını kontrol etmek için
51+
kullanılabilecek **tek** yöntem `hasOwnProperty` 'dir. Aynı zamanda, nesne
52+
[prototiplerinin](#object.prototype) genişletilmesinden kaynaklanabilecek
53+
hataların önüne geçmek için, **tüm** [`for in` döngüleri](#object.forinloop) ile
54+
`hasOwnProperty` kullanılması tavsiye olunur.
55+

0 commit comments

Comments
 (0)