Skip to content

Commit 8c3a1b9

Browse files
authored
Merge pull request #285 from devisasari/typo-fixed
Typo fixed
2 parents 1dbff80 + a79ff85 commit 8c3a1b9

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

1-js/06-advanced-functions/10-bind/article.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ libs:
77

88
Obje metodları ile `setTimeout` kullanıldığında veya obje metodları iletilirken, `this`'in kaybolması bilinen bir problemdir.
99

10-
Aniden, `this` kaybolur. Bu problem başlangıç seviyesi geliştiriciler için çok tipiktir, bazen deneyimli geliştiriceler de bu hataya düşerler.
10+
Aniden, `this` kaybolur. Bu problem başlangıç seviyesi geliştiriciler için çok tipiktir, bazen deneyimli geliştiriciler de bu hataya düşerler.
1111

12-
## "this"'in kaybetme
12+
## "this"i kaybetme
1313

1414
JavaScript'te `this` in ne kadar kolay bir şekilde kaybolduğunu zaten biliyorsunuz. Eğer bir metod objeden farklı bir yere iletilirse `this` kaybolur.
1515

@@ -28,9 +28,9 @@ setTimeout(user.sayHi, 1000); // Hello, undefined!
2828
*/!*
2929
```
3030

31-
Gördüğünüz gibi, çıktı "John"'u göstermedi bunun yerine `undefined` döndü!
31+
Gördüğünüz gibi, çıktı "John"u göstermedi bunun yerine `undefined` döndü!
3232

33-
Bunun nedeni `setTimeout`'un `user.sayHi` fonksiyonunun objeden ayrı olmasıdır. Son satır şu şekilde yazılabilri:
33+
Bunun nedeni `setTimeout`'un `user.sayHi` fonksiyonunun objeden ayrı olmasıdır. Son satır şu şekilde yazılabilir:
3434

3535
```js
3636
let f = user.sayHi;
@@ -39,7 +39,7 @@ setTimeout(f, 1000); // lost kullanıcı kaynağı kayboldu
3939

4040
Tarayıcıda `setTimeout` kullanımı biraz özeldir: `this=window` olarak ayarlanır. ( Node.JS için `this` timer objesi olur, fakat burada pek de önemli değil.) Öyleyse `this.firstName` bu değeri `window.firstName`'den almaya çalışır, fakat böyle bir şey yok. Buna benzer durumlarda siz de göreceksiniz `this` genelde `undefined` olur.
4141

42-
Aslında yapmak istediğimiz çok basit obje metodunu çağrılan yere ( -- ) iletmek istiyoruz ( burada -- zamanlayıcıdır.) Bunun doğru kaynakta çağırıldığına nasıl emin olunabilir?
42+
Aslında yapmak istediğimiz çok basit obje metodunu çağırılan yere ( -- ) iletmek istiyoruz ( burada -- zamanlayıcıdır). Bunun doğru kaynakta çağırıldığına nasıl emin olunabilir?
4343

4444
## Çözüm 1: saklayıcı
4545

@@ -101,7 +101,7 @@ Basitçe yazımı şu şekildedir:
101101
let boundFunc = func.bind(kaynak);
102102
````
103103

104-
`func.bind(kaynak)`'ın sonucu özel bir fonksiyon benzeri "egzotik obje"'dir. Fonksiyon gibi çağırılabilir ve saydam bir şekilde çağrıyı `func`'a `this=kaynak` olacak şekilde iletir.
104+
`func.bind(kaynak)`'ın sonucu özel bir fonksiyon benzeri "egzotik obje"dir. Fonksiyon gibi çağırılabilir ve saydam bir şekilde çağrıyı `func`'a `this=kaynak` olacak şekilde iletir.
105105

106106
Diğer bir deyişle `boundFunc` aslında sabit `this`'e sahip `func`'dur.
107107

@@ -162,7 +162,7 @@ sayHi(); // Hello, John!
162162
setTimeout(sayHi, 1000); // Hello, John!
163163
```
164164

165-
`(*)` satırında `user.sayHi` metodunu aıyoruz ve `user`'a bağlıyoruz. `sayHi` bu durumda `bağlanmış` fonksiyon oluyor. Böylece tek başına çağrılabilir veya `setTimeout` içerisinde çağrılabilir. Nereden çağırıldığı çok da önemli değidlir. Kaynağı her zaman doğru olacaktır.
165+
`(*)` satırında `user.sayHi` metodunu alıyoruz ve `user`'a bağlıyoruz. `sayHi` bu durumda `bağlanmış` fonksiyon oluyor. Böylece tek başına çağırılabilir veya `setTimeout` içerisinde çağırılabilir. Nereden çağırıldığı çok da önemli değildir. Kaynağı her zaman doğru olacaktır.
166166
167167
Gördüğünüz gibi tüm argümanlar "olduğu gibi" iletilir, sadece `this` `bind` tarafından sabitlenmiştir:
168168
@@ -181,7 +181,7 @@ say("Bye"); // Bye, John ("Bye" `say` fonksiyonuna iletildi.)
181181
```
182182
183183
````smart header="Kullanışlı metod: `bindAll`"
184-
Eğer bir objenin birçok metodu var ise bunu aktik olarak gerekli yerlere iletep, bunları bir döngü içerisine alabiliriz:
184+
Eğer bir objenin birçok metodu var ise bunu aktif olarak gerekli yerlere iletip, bunları bir döngü içerisine alabiliriz:
185185
186186
```js
187187
for (let key in user) {
@@ -196,7 +196,7 @@ Bu şekilde büyük bağlama olayları için bazı JavaScript kütüphanelerinde
196196
197197
## Özet
198198
199-
`func.bind(kaynak, ...args)` `func` fonksiyonunun "bağlanmış hali"'ni döndürür. Bu bağlanmış halde `this` ve argümanlar sabitlenir.
199+
`func.bind(kaynak, ...args)` `func` fonksiyonunun "bağlanmış hali"ni döndürür. Bu bağlanmış halde `this` ve argümanlar sabitlenir.
200200
201201
Bind genelde obje metodlarındaki `this`'in sabitlenmesi amacıyla kullanılır, sonrasında istenilen yere iletilebilir. `setTimeout` örneği gibi. `bind`'in modern geliştirmede kullanılmasının birçok nedeni vardır bunlara ilerleyen konularda değineceğiz.
202202

0 commit comments

Comments
 (0)