{"id":39891,"date":"2026-02-24T14:30:37","date_gmt":"2026-02-24T11:30:37","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/"},"modified":"2026-02-24T14:30:37","modified_gmt":"2026-02-24T11:30:37","slug":"javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/","title":{"rendered":"JavaScript G\u00fcn\u00fcn Sorusu #21: &#8216;this&#8217; Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131"},"content":{"rendered":"<h2>JavaScript G\u00fcn\u00fcn Sorusu #21: &#8216;this&#8217; Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131<\/h2>\n<p>JavaScript geli\u015ftiricilerinin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en kafa kar\u0131\u015ft\u0131r\u0131c\u0131 konulardan biri, \u015f\u00fcphesiz &#8216;this&#8217; anahtar kelimesinin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131d\u0131r. Farkl\u0131 ba\u011flamlarda s\u00fcrekli de\u011fi\u015fen davran\u0131\u015f\u0131, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in b\u00fcy\u00fck bir zorluk te\u015fkil ederken, deneyimli geli\u015ftiricilerin bile zaman zaman tak\u0131lmas\u0131na neden olabilir. Bu makalede, &#8220;JavaScript G\u00fcn\u00fcn Sorusu #21&#8221; senaryosu \u00fczerinden &#8216;this&#8217; anahtar kelimesinin inceliklerini, fonksiyon bildirimlerini, arrow fonksiyonlar\u0131n\u0131 ve zamanlay\u0131c\u0131 fonksiyonlar\u0131 i\u00e7indeki davran\u0131\u015flar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Bu karma\u015f\u0131k konuyu ad\u0131m ad\u0131m \u00e7\u00f6zerek, JavaScript kodunuzda daha sa\u011flam ve \u00f6ng\u00f6r\u00fclebilir bir &#8216;this&#8217; y\u00f6netimi sa\u011flaman\u0131za yard\u0131mc\u0131 olmay\u0131 ama\u00e7l\u0131yoruz.<\/p>\n<h3>JavaScript G\u00fcn\u00fcn Sorusu #21: Senaryoyu Anlamak<\/h3>\n<p>Her g\u00fcn kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z kod par\u00e7ac\u0131klar\u0131, bazen basit g\u00f6r\u00fcnen ama derinlemesine JavaScript bilgisi gerektiren sorular\u0131 beraberinde getirir. &#8220;G\u00fcn\u00fcn Sorusu #21&#8221; de tam olarak b\u00f6yle bir senaryoyu ele al\u0131yor. \u0130\u015fte ele alaca\u011f\u0131m\u0131z kod blo\u011fu:<\/p>\n<h4>Sorunun Yap\u0131s\u0131 ve Amac\u0131<\/h4>\n<p>Bu t\u00fcr sorular\u0131n temel amac\u0131, JavaScript&#8217;in temel mekanizmalar\u0131ndan biri olan &#8216;this&#8217; anahtar kelimesinin farkl\u0131 \u00e7a\u011fr\u0131 ba\u011flamlar\u0131nda nas\u0131l davrand\u0131\u011f\u0131n\u0131 test etmektir. Bir nesne i\u00e7indeki metotlar, arrow fonksiyonlar\u0131 ve zamanlay\u0131c\u0131 fonksiyonlar\u0131 (setTimeout) gibi \u00e7e\u015fitli senaryolar, &#8216;this&#8217;in dinamik yap\u0131s\u0131n\u0131 g\u00f6zler \u00f6n\u00fcne serer.<\/p>\n<h4>Verilen Kod Blo\u011fu: Detayl\u0131 \u0130nceleme<\/h4>\n<p>A\u015fa\u011f\u0131daki kod blo\u011funu dikkatlice inceleyelim ve her bir sat\u0131r\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131 tahmin etmeye \u00e7al\u0131\u015fal\u0131m. Bu, makalenin geri kalan\u0131nda yapaca\u011f\u0131m\u0131z analiz i\u00e7in bir ba\u015flang\u0131\u00e7 noktas\u0131 olacak.<\/p>\n<pre><code class=\"language-javascript\">const user = {\n  name: \"Alice\",\n  greet: function() {\n    console.log(<code>Hello, my name is ${this.name}<\/code>);\n  },\n  sayHi: () => {\n    console.log(<code>Hi, my name is ${this.name}<\/code>);\n  },\n  introduce: function() {\n    setTimeout(function() {\n      console.log(<code>I am ${this.name}.<\/code>);\n    }, 100);\n  },\n  introduceArrow: function() {\n    setTimeout(() => {\n      console.log(<code>I am ${this.name}.<\/code>);\n    }, 100);\n  }\n};\n\nuser.greet();\nuser.sayHi();\nuser.introduce();\nuser.introduceArrow();\n<\/pre>\n<p><\/code><\/p>\n<h4>Beklentiler ve \u0130lk Tahminler<\/h4>\n<p>Bu kod blo\u011funu ilk g\u00f6rd\u00fc\u011f\u00fcn\u00fczde, muhtemelen t\u00fcm \u00e7\u0131kt\u0131larda \"Alice\" ismini g\u00f6rmeyi bekleyebilirsiniz. Ancak 'this'in JavaScript'teki karma\u015f\u0131k do\u011fas\u0131 nedeniyle, durum bu kadar basit olmayabilir. Her bir fonksiyon \u00e7a\u011fr\u0131s\u0131n\u0131n 'this' ba\u011flam\u0131n\u0131 nas\u0131l etkiledi\u011fini anlamak, do\u011fru tahminler yapmam\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h3>'this' Anahtar Kelimesinin Temelleri<\/h3>\n<p>'this' anahtar kelimesi, bir fonksiyonun \u00e7a\u011fr\u0131ld\u0131\u011f\u0131 ba\u011flama (context) g\u00f6re de\u011feri de\u011fi\u015fen \u00f6zel bir de\u011fi\u015fkendir. JavaScript'te 'this'in de\u011feri, fonksiyonun nas\u0131l tan\u0131mland\u0131\u011f\u0131ndan \u00e7ok, nas\u0131l \u00e7a\u011fr\u0131ld\u0131\u011f\u0131na ba\u011fl\u0131d\u0131r.<\/p>\n<h4>'this' Nedir ve Neden \u00d6nemlidir?<\/h4>\n<p>'this', mevcut y\u00fcr\u00fctme ba\u011flam\u0131n\u0131 temsil eder. Bir nesnenin metotlar\u0131 i\u00e7inde, o nesneye referans verirken; ba\u011f\u0131ms\u0131z bir fonksiyonda ise genellikle global nesneye (taray\u0131c\u0131da <code>window<\/code>, Node.js'te <code>global<\/code>) referans verir. 'this'in do\u011fru anla\u015f\u0131lmas\u0131, \u00f6zellikle nesne y\u00f6nelimli programlama ve olay y\u00f6netimi gibi konularda kritik \u00f6neme sahiptir.<\/p>\n<h4>Global Ba\u011flamda 'this'<\/h4>\n<p>Herhangi bir fonksiyonun d\u0131\u015f\u0131nda, global ba\u011flamda 'this'in de\u011feri taray\u0131c\u0131 ortam\u0131nda <code>window<\/code> nesnesine, Node.js ortam\u0131nda ise <code>global<\/code> nesnesine e\u015fittir. Bu, varsay\u0131lan 'this' de\u011feridir.<\/p>\n<pre><code class=\"language-javascript\">console.log(this === window); \/\/ Taray\u0131c\u0131da: true\n<\/pre>\n<p><\/code><\/p>\n<h4>Metot \u00c7a\u011fr\u0131lar\u0131nda 'this'<\/h4>\n<p>Bir fonksiyon bir nesnenin metodu olarak \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda, 'this' o nesneye referans eder. Bu, 'this'in en yayg\u0131n ve beklenen davran\u0131\u015flar\u0131ndan biridir.<\/p>\n<pre><code class=\"language-javascript\">const obj = {\n  name: \"Bob\",\n  sayName: function() {\n    console.log(this.name); \/\/ 'this' obj'ye referans eder\n  }\n};\nobj.sayName(); \/\/ \u00c7\u0131kt\u0131: Bob\n<\/pre>\n<p><\/code><\/p>\n<h4>S\u0131k\u0131 Mod (Strict Mode) Etkisi<\/h4>\n<p>JavaScript'in \"s\u0131k\u0131 mod\"u (<code>'use strict';<\/code>), 'this'in davran\u0131\u015f\u0131n\u0131 baz\u0131 durumlarda de\u011fi\u015ftirir. \u00d6zellikle, s\u0131k\u0131 modda ba\u011f\u0131ms\u0131z olarak \u00e7a\u011fr\u0131lan fonksiyonlarda 'this'in de\u011feri <code>undefined<\/code> olur, global nesneye ba\u011flanmaz. Bu, beklenmedik global de\u011fi\u015fken olu\u015fturulmas\u0131n\u0131n \u00f6n\u00fcne ge\u00e7er ve hatalar\u0131 daha belirgin hale getirir.<\/p>\n<h3>Fonksiyon Bildirimlerinde 'this' Ba\u011flam\u0131<\/h3>\n<p>Geleneksel fonksiyon bildirimleri, 'this'in dinamik do\u011fas\u0131n\u0131 en iyi g\u00f6steren yerlerden biridir. Fonksiyonun nas\u0131l \u00e7a\u011fr\u0131ld\u0131\u011f\u0131, 'this'in de\u011ferini do\u011frudan etkiler.<\/p>\n<h4>Normal Fonksiyonlar\u0131n \u00c7al\u0131\u015fma \u015eekli<\/h4>\n<p>Normal fonksiyonlar, \u00e7a\u011fr\u0131lma bi\u00e7imlerine g\u00f6re 'this' ba\u011flam\u0131n\u0131 belirler. Bu, onlar\u0131n en esnek ama ayn\u0131 zamanda en kafa kar\u0131\u015ft\u0131r\u0131c\u0131 y\u00f6n\u00fcd\u00fcr.<\/p>\n<h4>Nesne Metotlar\u0131 Olarak Fonksiyonlar<\/h4>\n<p>G\u00fcn\u00fcn Sorusu #21'deki <code>user.greet()<\/code> \u00e7a\u011fr\u0131s\u0131 bu kategoriye girer. Bir fonksiyon bir nesnenin metodu olarak \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda, 'this' o nesneye (bu durumda <code>user<\/code> nesnesine) ba\u011flan\u0131r.<\/p>\n<pre><code class=\"language-javascript\">\/\/ user.greet() \u00e7a\u011fr\u0131s\u0131 i\u00e7in\n\/\/ user.greet: function() { console.log(<code>Hello, my name is ${this.name}<\/code>); }\nuser.greet(); \/\/ \u00c7\u0131kt\u0131: Hello, my name is Alice\n\/\/ A\u00e7\u0131klama: greet fonksiyonu user nesnesi \u00fczerinden \u00e7a\u011fr\u0131ld\u0131\u011f\u0131 i\u00e7in, 'this' user nesnesini g\u00f6sterir.\n<\/pre>\n<p><\/code><\/p>\n<h4>Ba\u011f\u0131ms\u0131z Fonksiyon \u00c7a\u011fr\u0131lar\u0131<\/h4>\n<p>E\u011fer bir fonksiyon bir nesneye ba\u011fl\u0131 olmadan do\u011frudan \u00e7a\u011fr\u0131l\u0131rsa (\u00f6rne\u011fin <code>myFunction()<\/code>), 'this' varsay\u0131lan olarak global nesneye (taray\u0131c\u0131da <code>window<\/code>) ba\u011flan\u0131r. S\u0131k\u0131 modda ise <code>undefined<\/code> olur. Bu durum, \u00f6zellikle callback fonksiyonlar\u0131nda s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan bir 'this' kayb\u0131na yol a\u00e7ar.<\/p>\n<h3>Arrow Fonksiyonlar\u0131 ve 'this' Fark\u0131<\/h3>\n<p>ES6 ile birlikte hayat\u0131m\u0131za giren arrow fonksiyonlar\u0131, 'this' y\u00f6netiminde devrim niteli\u011finde bir de\u011fi\u015fiklik getirdi. Geleneksel fonksiyonlardan farkl\u0131 olarak, arrow fonksiyonlar\u0131n\u0131n kendi 'this' ba\u011flamlar\u0131 yoktur.<\/p>\n<h4>Lexical 'this' Kavram\u0131<\/h4>\n<p>Arrow fonksiyonlar\u0131, 'this' de\u011ferini tan\u0131mland\u0131klar\u0131 yerdeki (lexical scope) \u00fcst kapsamdan miras al\u0131r. Yani, arrow fonksiyonu nerede tan\u0131mland\u0131ysa, 'this' o kapsamdaki 'this' de\u011ferini korur. Bu, 'this'in dinamik ba\u011flam sorununu ortadan kald\u0131r\u0131r.<\/p>\n<h4>Arrow Fonksiyonlar\u0131n\u0131n Avantajlar\u0131<\/h4>\n<ul>\n<li>'this' ba\u011flam\u0131n\u0131 kaybetme sorununu \u00e7\u00f6zer.<\/li>\n<li>Daha k\u0131sa ve okunabilir s\u00f6zdizimi sunar.<\/li>\n<li>\u00d6zellikle callback fonksiyonlar\u0131 ve i\u00e7 i\u00e7e fonksiyonlar i\u00e7in idealdir.<\/li>\n<\/ul>\n<p>G\u00fcn\u00fcn Sorusu #21'deki <code>user.sayHi()<\/code> \u00e7a\u011fr\u0131s\u0131na bakal\u0131m:<\/p>\n<pre><code class=\"language-javascript\">\/\/ user.sayHi: () => { console.log(<code>Hi, my name is ${this.name}<\/code>); }\nuser.sayHi(); \/\/ \u00c7\u0131kt\u0131: Hi, my name is undefined (Taray\u0131c\u0131da: Hi, my name is undefined)\n\/\/ A\u00e7\u0131klama: sayHi bir arrow fonksiyonu oldu\u011fu i\u00e7in kendi 'this' ba\u011flam\u0131 yoktur.\n\/\/ 'this'i tan\u0131mland\u0131\u011f\u0131 \u00fcst kapsamdan (bu durumda global kapsam) miras al\u0131r.\n\/\/ Global kapsamda 'name' \u00f6zelli\u011fi olmad\u0131\u011f\u0131 i\u00e7in 'undefined' d\u00f6ner.\n\/\/ Taray\u0131c\u0131da, global 'this' 'window' nesnesidir. 'window.name' genellikle bo\u015f bir stringdir veya undefined'd\u0131r.\n\/\/ S\u0131k\u0131 mod olsun veya olmas\u0131n, arrow fonksiyonlar\u0131 'this'i \u00fcst kapsamdan al\u0131r.\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00e7\u0131kt\u0131, arrow fonksiyonlar\u0131n\u0131n 'this'i nesneye ba\u011flamad\u0131\u011f\u0131n\u0131, aksine tan\u0131mland\u0131\u011f\u0131 yerdeki 'this'i kulland\u0131\u011f\u0131n\u0131 net bir \u015fekilde g\u00f6sterir. <code>sayHi<\/code> metodu do\u011frudan <code>user<\/code> nesnesi i\u00e7inde tan\u0131mlanm\u0131\u015f olsa da, bir arrow fonksiyonu oldu\u011fu i\u00e7in <code>user<\/code> nesnesinin 'this'ini almaz. Onun yerine, <code>user<\/code> nesnesinin tan\u0131mland\u0131\u011f\u0131 global kapsamdaki <code>this<\/code>i (yani <code>window<\/code> veya <code>undefined<\/code> s\u0131k\u0131 modda) al\u0131r.<\/p>\n<h4>Arrow Fonksiyonlar\u0131n\u0131n Dezavantajlar\u0131<\/h4>\n<ul>\n<li>Nesne metotlar\u0131 olarak kullan\u0131ld\u0131\u011f\u0131nda 'this'i nesneye ba\u011flamazlar.<\/li>\n<li><code>arguments<\/code> nesnesine eri\u015femezler.<\/li>\n<li><code>call<\/code>, <code>apply<\/code>, <code>bind<\/code> ile 'this' ba\u011flamlar\u0131 de\u011fi\u015ftirilemez.<\/li>\n<\/ul>\n<h3>Zamanlay\u0131c\u0131 Fonksiyonlar\u0131 (setTimeout) ve 'this'<\/h3>\n<p><code>setTimeout<\/code> gibi zamanlay\u0131c\u0131 fonksiyonlar\u0131 veya olay i\u015fleyicileri, 'this'in en \u00e7ok sorun \u00e7\u0131kard\u0131\u011f\u0131 yerlerden biridir. Callback fonksiyonlar\u0131 genellikle global ba\u011flamda \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131 i\u00e7in 'this' kayb\u0131 ya\u015fan\u0131r.<\/p>\n<h4><code>setTimeout<\/code> \u0130\u00e7inde 'this'in Kaybolmas\u0131<\/h4>\n<p>G\u00fcn\u00fcn Sorusu #21'deki <code>user.introduce()<\/code> metodu, bu sorunu \u00f6rnekler:<\/p>\n<pre><code class=\"language-javascript\">\/\/ user.introduce: function() {\n\/\/   setTimeout(function() {\n\/\/     console.log(<code>I am ${this.name}.<\/code>);\n\/\/   }, 100);\n\/\/ }\nuser.introduce(); \/\/ \u00c7\u0131kt\u0131: I am undefined. (Taray\u0131c\u0131da: I am undefined.)\n\/\/ A\u00e7\u0131klama: setTimeout i\u00e7indeki callback fonksiyonu ba\u011f\u0131ms\u0131z bir \u015fekilde \u00e7a\u011fr\u0131l\u0131r.\n\/\/ Bu durumda 'this' global nesneye (window) ba\u011flan\u0131r veya s\u0131k\u0131 modda undefined olur.\n\/\/ 'window.name' genellikle bo\u015f bir string veya undefined oldu\u011fu i\u00e7in \u00e7\u0131kt\u0131 'undefined' olur.\n<\/pre>\n<p><\/code><\/p>\n<p>Burada <code>setTimeout<\/code> i\u00e7indeki anonim fonksiyon, <code>user<\/code> nesnesinin bir metodu olarak de\u011fil, ba\u011f\u0131ms\u0131z bir fonksiyon olarak \u00e7a\u011fr\u0131ld\u0131\u011f\u0131 i\u00e7in 'this' ba\u011flam\u0131n\u0131 kaybeder.<\/p>\n<h4>\u00c7\u00f6z\u00fcm 1: <code>bind()<\/code> Metodu<\/h4>\n<p><code>bind()<\/code> metodu, bir fonksiyonun 'this' ba\u011flam\u0131n\u0131 kal\u0131c\u0131 olarak belirlemenin en temiz yollar\u0131ndan biridir. Yeni bir fonksiyon d\u00f6nd\u00fcr\u00fcr ve bu fonksiyonun 'this'i her zaman <code>bind<\/code> ile belirtilen de\u011fere ayarl\u0131 olur.<\/p>\n<pre><code class=\"language-javascript\">const userWithBind = {\n  name: \"Bob\",\n  introduce: function() {\n    setTimeout(function() {\n      console.log(<code>I am ${this.name}.<\/code>);\n    }.bind(this), 100); \/\/ 'this'i userWithBind nesnesine ba\u011flar\n  }\n};\nuserWithBind.introduce(); \/\/ \u00c7\u0131kt\u0131: I am Bob.\n<\/pre>\n<p><\/code><\/p>\n<h4>\u00c7\u00f6z\u00fcm 2: Kapan\u0131\u015flar (Closures) ve De\u011fi\u015fken Saklama<\/h4>\n<p>Fonksiyon i\u00e7inde <code>this<\/code>'i bir de\u011fi\u015fkene atayarak (genellikle <code>that<\/code> veya <code>self<\/code> gibi isimlerle), i\u00e7 fonksiyonlar\u0131n bu de\u011fere kapan\u0131\u015f (closure) arac\u0131l\u0131\u011f\u0131yla eri\u015fmesini sa\u011flayabiliriz.<\/p>\n<pre><code class=\"language-javascript\">const userWithClosure = {\n  name: \"Charlie\",\n  introduce: function() {\n    const self = this; \/\/ 'this'i bir de\u011fi\u015fkene saklar\n    setTimeout(function() {\n      console.log(<code>I am ${self.name}.<\/code>);\n    }, 100);\n  }\n};\nuserWithClosure.introduce(); \/\/ \u00c7\u0131kt\u0131: I am Charlie.\n<\/pre>\n<p><\/code><\/p>\n<h4>\u00c7\u00f6z\u00fcm 3: Arrow Fonksiyonlar\u0131n\u0131n G\u00fcc\u00fc<\/h4>\n<p>Arrow fonksiyonlar\u0131, <code>setTimeout<\/code> gibi callback'lerde 'this' sorununu do\u011fal yoldan \u00e7\u00f6zer. \u00c7\u00fcnk\u00fc kendi 'this'leri olmad\u0131\u011f\u0131 i\u00e7in, tan\u0131mland\u0131klar\u0131 \u00fcst kapsamdaki 'this'i miras al\u0131rlar. G\u00fcn\u00fcn Sorusu #21'deki <code>user.introduceArrow()<\/code> metodu bu \u00e7\u00f6z\u00fcm\u00fc kullan\u0131r:<\/p>\n<pre><code class=\"language-javascript\">\/\/ user.introduceArrow: function() {\n\/\/   setTimeout(() => {\n\/\/     console.log(<code>I am ${this.name}.<\/code>);\n\/\/   }, 100);\n\/\/ }\nuser.introduceArrow(); \/\/ \u00c7\u0131kt\u0131: I am Alice.\n\/\/ A\u00e7\u0131klama: setTimeout i\u00e7indeki arrow fonksiyonu, tan\u0131mland\u0131\u011f\u0131 yerdeki 'this'i miras al\u0131r.\n\/\/ Bu arrow fonksiyonu, introduceArrow metodunun i\u00e7inde tan\u0131mlanm\u0131\u015ft\u0131r.\n\/\/ introduceArrow metodu user nesnesi \u00fczerinden \u00e7a\u011fr\u0131ld\u0131\u011f\u0131 i\u00e7in, bu metodun 'this'i user nesnesidir.\n\/\/ Dolay\u0131s\u0131yla, arrow fonksiyonu da user nesnesinin 'this'ini miras al\u0131r.\n<\/pre>\n<p><\/code><\/p>\n<p>Bu, <code>setTimeout<\/code> ve benzeri asenkron operasyonlarda 'this' sorununu \u00e7\u00f6zmek i\u00e7in en modern ve tercih edilen y\u00f6ntemdir.<\/p>\n<h3>Yayg\u0131n Hatalar ve Ka\u00e7\u0131n\u0131lmas\u0131 Gerekenler<\/h3>\n<p>'this' anahtar kelimesiyle \u00e7al\u0131\u015f\u0131rken yap\u0131lan baz\u0131 yayg\u0131n hatalar vard\u0131r. Bunlar\u0131 bilmek, daha az hata yapman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h4>'this' Ba\u011flam\u0131n\u0131 Yanl\u0131\u015f Anlamak<\/h4>\n<p>En s\u0131k yap\u0131lan hata, 'this'in her zaman bekledi\u011finiz nesneye referans edece\u011fini varsaymakt\u0131r. \u00d6zellikle fonksiyonlar\u0131n farkl\u0131 ba\u011flamlarda \u00e7a\u011fr\u0131lmas\u0131, bu yan\u0131lg\u0131ya yol a\u00e7ar.<\/p>\n<h4>Arrow Fonksiyonlar\u0131n\u0131 Her Yerde Kullanmak<\/h4>\n<p>Arrow fonksiyonlar\u0131 harika olsa da, her durumda geleneksel fonksiyonlar\u0131n yerine ge\u00e7mezler. \u00d6zellikle bir nesnenin kendi 'this'ine ihtiya\u00e7 duyan metotlar\u0131nda (\u00f6rne\u011fin, bir DOM elementinin kendi 'this'ine eri\u015fmesi gereken olay i\u015fleyicilerinde) arrow fonksiyonlar\u0131 kullanmak, beklenmeyen sonu\u00e7lara yol a\u00e7abilir.<\/p>\n<h4>S\u0131k\u0131 Modu G\u00f6z Ard\u0131 Etmek<\/h4>\n<p>S\u0131k\u0131 mod, 'this'in varsay\u0131lan davran\u0131\u015f\u0131n\u0131 de\u011fi\u015ftirir ve bu, kodunuzun farkl\u0131 ortamlarda farkl\u0131 \u00e7al\u0131\u015fmas\u0131na neden olabilir. Her zaman s\u0131k\u0131 modu g\u00f6z \u00f6n\u00fcnde bulundurarak kod yazmak, daha g\u00fcvenli uygulamalar geli\u015ftirmenizi sa\u011flar.<\/p>\n<h3>En \u0130yi Uygulamalar ve \u00c7\u00f6z\u00fcm Stratejileri<\/h3>\n<p>'this' ile \u00e7al\u0131\u015f\u0131rken karma\u015f\u0131kl\u0131\u011f\u0131 azaltmak ve kodunuzu daha okunabilir hale getirmek i\u00e7in baz\u0131 en iyi uygulamalar mevcuttur.<\/p>\n<h4>Kod Okunabilirli\u011fini Art\u0131rmak<\/h4>\n<p>Tutarl\u0131 bir 'this' y\u00f6netimi stratejisi benimsemek, kodunuzu daha anla\u015f\u0131l\u0131r hale getirir. \u00d6rne\u011fin, callback'lerde her zaman arrow fonksiyonlar\u0131 kullanmak veya belirli durumlarda <code>bind<\/code> kullanmak gibi.<\/p>\n<h4><code>bind<\/code>, <code>call<\/code>, <code>apply<\/code> Kullan\u0131m\u0131<\/h4>\n<p>Bu \u00fc\u00e7 metot, bir fonksiyonun 'this' ba\u011flam\u0131n\u0131 a\u00e7\u0131k\u00e7a kontrol etmenizi sa\u011flar:<\/p>\n<ul>\n<li><code>bind()<\/code>: Fonksiyonun 'this'ini kal\u0131c\u0131 olarak belirleyen yeni bir fonksiyon d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>call()<\/code>: Fonksiyonu belirli bir 'this' ba\u011flam\u0131 ile hemen \u00e7a\u011f\u0131r\u0131r ve arg\u00fcmanlar\u0131 tek tek al\u0131r.<\/li>\n<li><code>apply()<\/code>: Fonksiyonu belirli bir 'this' ba\u011flam\u0131 ile hemen \u00e7a\u011f\u0131r\u0131r ve arg\u00fcmanlar\u0131 bir dizi olarak al\u0131r.<\/li>\n<\/ul>\n<p>Bu metotlar\u0131 do\u011fru anlamak ve kullanmak, 'this' ile ilgili bir\u00e7ok sorunu \u00e7\u00f6zebilir.<\/p>\n<h4>Modern JavaScript Yakla\u015f\u0131mlar\u0131<\/h4>\n<p>ES6+ ile gelen arrow fonksiyonlar\u0131, s\u0131n\u0131f s\u00f6zdizimi ve di\u011fer \u00f6zellikler, 'this' y\u00f6netimini daha kolay ve \u00f6ng\u00f6r\u00fclebilir hale getirmi\u015ftir. M\u00fcmk\u00fcn oldu\u011funca bu modern yakla\u015f\u0131mlar\u0131 benimsemek, kod kalitenizi art\u0131racakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>'this' anahtar kelimesi, JavaScript'in en temel ama ayn\u0131 zamanda en karma\u015f\u0131k y\u00f6nlerinden biridir. \"JavaScript G\u00fcn\u00fcn Sorusu #21\" \u00f6rne\u011fi \u00fczerinden g\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, 'this'in de\u011feri fonksiyonun nas\u0131l tan\u0131mland\u0131\u011f\u0131ndan \u00e7ok, nas\u0131l \u00e7a\u011fr\u0131ld\u0131\u011f\u0131na ba\u011fl\u0131d\u0131r. Geleneksel fonksiyonlarda dinamik olan bu ba\u011flam, arrow fonksiyonlar\u0131 ile lexical (tan\u0131mland\u0131\u011f\u0131 yerdeki) hale gelir. \u00d6zellikle <code>setTimeout<\/code> gibi asenkron operasyonlarda 'this' kayb\u0131n\u0131 \u00f6nlemek i\u00e7in <code>bind()<\/code>, closure'lar veya en modern \u00e7\u00f6z\u00fcm olan arrow fonksiyonlar\u0131 kullan\u0131labilir.<\/p>\n<p>Bu makalede ele al\u0131nan prensipleri ve \u00f6rnekleri anlayarak, JavaScript'te 'this' ile ilgili yayg\u0131n hatalardan ka\u00e7\u0131nabilir ve daha sa\u011flam, okunabilir ve \u00f6ng\u00f6r\u00fclebilir kodlar yazabilirsiniz. Unutmay\u0131n, 'this'in davran\u0131\u015f\u0131n\u0131 anlamak, JavaScript ustal\u0131k yolculu\u011funuzun \u00f6nemli bir ad\u0131m\u0131d\u0131r.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>'this' anahtar kelimesi neden bu kadar karma\u015f\u0131k?<\/h4>\n<p>'this'in karma\u015f\u0131kl\u0131\u011f\u0131, JavaScript'in dinamik do\u011fas\u0131ndan ve fonksiyonlar\u0131n farkl\u0131 ba\u011flamlarda \u00e7a\u011fr\u0131labilme yetene\u011finden kaynaklan\u0131r. Geleneksel olarak, fonksiyonun nas\u0131l \u00e7a\u011fr\u0131ld\u0131\u011f\u0131na ba\u011fl\u0131 olarak 'this'in de\u011feri de\u011fi\u015fir, bu da \u00f6ng\u00f6r\u00fclemezlik yaratabilir.<\/p>\n<h4>Arrow fonksiyonlar\u0131 'this' sorununu tamamen \u00e7\u00f6zer mi?<\/h4>\n<p>Arrow fonksiyonlar\u0131, 'this'in lexical (tan\u0131mland\u0131\u011f\u0131 yerdeki) kapsamdan miras al\u0131nmas\u0131n\u0131 sa\u011flayarak bir\u00e7ok 'this' sorununu \u00e7\u00f6zer. Ancak, bir nesnenin kendi 'this'ine ihtiya\u00e7 duyan metotlar\u0131 i\u00e7in veya <code>call<\/code>, <code>apply<\/code>, <code>bind<\/code> ile 'this' ba\u011flam\u0131n\u0131 de\u011fi\u015ftirmek istedi\u011finiz durumlarda uygun olmayabilirler.<\/p>\n<h4><code>bind<\/code>, <code>call<\/code>, <code>apply<\/code> ne zaman kullan\u0131lmal\u0131?<\/h4>\n<p>Bu metotlar, bir fonksiyonun 'this' ba\u011flam\u0131n\u0131 a\u00e7\u0131k\u00e7a kontrol etmek istedi\u011finizde kullan\u0131l\u0131r. <code>bind()<\/code> genellikle bir fonksiyonun 'this'ini kal\u0131c\u0131 olarak belirlemek ve daha sonra \u00e7a\u011fr\u0131lacak bir kopyas\u0131n\u0131 olu\u015fturmak i\u00e7in kullan\u0131l\u0131r (\u00f6rne\u011fin olay i\u015fleyicilerinde). <code>call()<\/code> ve <code>apply()<\/code> ise bir fonksiyonu belirli bir 'this' ba\u011flam\u0131 ile hemen \u00e7a\u011f\u0131rmak i\u00e7in kullan\u0131l\u0131r; <code>call()<\/code> arg\u00fcmanlar\u0131 virg\u00fclle ayr\u0131lm\u0131\u015f listelerken, <code>apply()<\/code> bir dizi olarak al\u0131r.<\/p>\n<h4>Global 'this' ve <code>window<\/code> objesi aras\u0131ndaki ili\u015fki nedir?<\/h4>\n<p>Taray\u0131c\u0131 ortam\u0131nda, herhangi bir fonksiyonun d\u0131\u015f\u0131nda veya s\u0131k\u0131 modda olmayan ba\u011f\u0131ms\u0131z bir fonksiyon i\u00e7inde 'this'in de\u011feri global <code>window<\/code> objesine e\u015fittir. <code>window<\/code> objesi, taray\u0131c\u0131 ortam\u0131ndaki t\u00fcm global de\u011fi\u015fkenleri ve fonksiyonlar\u0131 bar\u0131nd\u0131ran en \u00fcst d\u00fczey objedir.<\/p>\n<h4>React\/Vue gibi frameworklerde 'this' nas\u0131l y\u00f6netilir?<\/h4>\n<p>Modern frameworkler (React, Vue) genellikle 'this' y\u00f6netimini kolayla\u015ft\u0131ran mekanizmalar sunar. \u00d6rne\u011fin, React s\u0131n\u0131f bile\u015fenlerinde metotlar\u0131 <code>constructor<\/code> i\u00e7inde <code>bind(this)<\/code> ile ba\u011flamak veya arrow fonksiyonlar\u0131n\u0131 kullanmak yayg\u0131n bir yakla\u015f\u0131md\u0131r. Vue.js'te ise genellikle <code>this<\/code> bile\u015fen \u00f6rne\u011fine otomatik olarak ba\u011flan\u0131r, bu da 'this' ile ilgili sorunlar\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde azalt\u0131r.<\/p>\n","protected":false},"excerpt":{"rendered":"JavaScript geli\u015ftiricilerinin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en kafa kar\u0131\u015ft\u0131r\u0131c\u0131 konulardan biri, \u015f\u00fcphesiz &#8216;this&#8217; anahtar kelimesinin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131d\u0131r&#8230;.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[129],"tags":[],"class_list":{"0":"post-39891","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-javascript","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JavaScript G\u00fcn\u00fcn Sorusu #21: &#039;this&#039; Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript G\u00fcn\u00fcn Sorusu #21: &#039;this&#039; Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131\" \/>\n<meta property=\"og:description\" content=\"JavaScript geli\u015ftiricilerinin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en kafa kar\u0131\u015ft\u0131r\u0131c\u0131 konulardan biri, \u015f\u00fcphesiz &#039;this&#039; anahtar kelimesinin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131d\u0131r....\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-24T11:30:37+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"JavaScript G\u00fcn\u00fcn Sorusu #21: &#8216;this&#8217; Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131\",\"datePublished\":\"2026-02-24T11:30:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/\"},\"wordCount\":1983,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Javascript\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/\",\"name\":\"JavaScript G\u00fcn\u00fcn Sorusu #21: 'this' Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-24T11:30:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript G\u00fcn\u00fcn Sorusu #21: &#8216;this&#8217; Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"JavaScript G\u00fcn\u00fcn Sorusu #21: 'this' Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/","og_locale":"tr_TR","og_type":"article","og_title":"JavaScript G\u00fcn\u00fcn Sorusu #21: 'this' Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131","og_description":"JavaScript geli\u015ftiricilerinin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en kafa kar\u0131\u015ft\u0131r\u0131c\u0131 konulardan biri, \u015f\u00fcphesiz 'this' anahtar kelimesinin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131d\u0131r....","og_url":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-24T11:30:37+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"12 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"JavaScript G\u00fcn\u00fcn Sorusu #21: &#8216;this&#8217; Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131","datePublished":"2026-02-24T11:30:37+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/"},"wordCount":1983,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Javascript"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/","url":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/","name":"JavaScript G\u00fcn\u00fcn Sorusu #21: 'this' Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-24T11:30:37+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-gunun-sorusu-21-this-anahtar-kelimesi-ve-kapsam-anlayisi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JavaScript G\u00fcn\u00fcn Sorusu #21: &#8216;this&#8217; Anahtar Kelimesi ve Kapsam Anlay\u0131\u015f\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=39891"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39891\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}