Skip to content

Commit fd4c532

Browse files
committed
Translated object/general.
1 parent cb3caaa commit fd4c532

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

doc/tr/object/general.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
## Nesne Kullanımı ve Özellikleri
2+
3+
JavaScript'te iki istisna dışında her şey bir nesne olarak davranır;
4+
bu istisnalar da [`null`](#core.undefined) ve [`undefined`](#core.undefined)
5+
'dır.
6+
7+
false.toString() // 'false'
8+
[1, 2, 3].toString(); // '1,2,3'
9+
10+
function Foo(){}
11+
Foo.bar = 1;
12+
Foo.bar; // 1
13+
14+
Sık düşülen bir yanılgı sayı sabitlerinin nesne olarak kullanılamayacağıdır. Bu
15+
yanılgının sebebi de JavaScript çözümleyicisinin *nokta notasyonu* ile girilen
16+
sayıları bir reel sayı olarak algılama hatasıdır.
17+
18+
2.toString(); // SyntaxError hatası verir
19+
20+
Bu hatayı aşıp sayı sabitlerinin de nesne olarak davranmasını sağlamak için
21+
uygulanabilecek bazı çözümler vardır.
22+
23+
2..toString(); // ikinci nokta doğru şekilde algılanır
24+
2 .toString(); // noktanın solundki boşluğa dikkat edin
25+
(2).toString(); // ilk önce 2 değerlendirilir
26+
27+
### Bir veri türü olarak nesneler
28+
29+
JavaScript nesneleri aynı zamanda bir [*Hashmap*][1] olarak da kullanılabilir,
30+
nesneler temelde isimli özellikler ve bunlara karşılık gelen değerlerden
31+
ibarettir.
32+
33+
Nesne değişmezi (`{}` notasyonu) ile düz bir nesne yaratmak mümkündür. Bu yeni
34+
nesne [kalıtım](#object.prototype) ile `Object.prototype` 'dan türüyecektir ve
35+
hiçbir [baz özelliğe](#object.hasownproperty) sahip olmayacaktır.
36+
37+
var foo = {}; // yeni bir boş nesne
38+
39+
// adı 'test' ve değeri 12 olan bir özelliği sahip yeni bir nesne
40+
var bar = {test: 12};
41+
42+
### Özelliklere erişmek
43+
44+
Bir nesnenin özelliklerine iki yolla erişilebilir, ya nokta notasyonu ile veya
45+
köşeli parantez notasyonu ile.
46+
47+
var foo = {name: 'Kitten'}
48+
foo.name; // kitten
49+
foo['name']; // kitten
50+
51+
var get = 'name';
52+
foo[get]; // kitten
53+
54+
foo.1234; // SyntaxError
55+
foo['1234']; // çalışır
56+
57+
Her iki notasyon da aynı şekilde çalışır, tek fark köşeli parantez notasyonunun
58+
özelliklerin dinamik olarak oluşturulmasına ve normalde bir yazım hatasına yol
59+
açabilecek özellik isimlerinin kullanılmasına izin vermesidir.
60+
61+
### Özellikleri silmek
62+
63+
Bir nesnenin özelliklerinden birini silmenin tek yolu `delete` operatörünü
64+
kullanmaktır; özelliğe `undefined` veya `null` değerlerini atamak **sadece**
65+
özelliğin değerini kaldırır, anahtarı değil.
66+
67+
var obj = {
68+
bar: 1,
69+
foo: 2,
70+
baz: 3
71+
};
72+
obj.bar = undefined;
73+
obj.foo = null;
74+
delete obj.baz;
75+
76+
for(var i in obj) {
77+
if (obj.hasOwnProperty(i)) {
78+
console.log(i, '' + obj[i]);
79+
}
80+
}
81+
82+
Yukarıdaki örnek sonuç olarak hem `bar undefined` hem de `foo null` yazacaktır.
83+
Sadece `baz` özelliği kaldırılmışi olacak ve çıktıda görünmeyecektir.
84+
85+
### Anahtar notasyonu
86+
87+
var test = {
88+
'case': 'bir anahtar kelime olduğu için katar notasyonu ile girildi',
89+
delete: 'aynı şekilde katar notasyonu gerekiyordu' // SyntaxError hatası verir
90+
};
91+
92+
Nesne özellikleri düz karakterler olarak da katar notasyonu ile de
93+
tanımlanabilir. Fakat JavaScript çzöümleyicisinin bir başka tasarım hatası
94+
yüzünden, yukarıdaki örnek ECMAScript 5 öncesinde bir `SyntaxError` hatasına
95+
verecektir.
96+
97+
Bu hata `delete` 'in bir *anahtar kelime* olmasından kaynaklanır, bu nedenle
98+
eski JavaScript motorlarının bu örneği doğru algılaması için *karakter katarı*
99+
notasyonu ile girilmelidir.
100+
101+
[1]: http://en.wikipedia.org/wiki/Hashmap
102+

0 commit comments

Comments
 (0)