{"id":3678,"date":"2024-11-12T07:45:11","date_gmt":"2024-11-12T04:45:11","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/"},"modified":"2024-11-12T07:45:11","modified_gmt":"2024-11-12T04:45:11","slug":"javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/","title":{"rendered":"JavaScript&#8217;te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler"},"content":{"rendered":"<p>JavaScript&#8217;te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler<\/p>\n<p>JavaScript&#8217;te kapan\u0131mlar, fonksiyonlar\u0131n kapsam\u0131 ve belle\u011fi hakk\u0131nda g\u00fc\u00e7l\u00fc bir kavramd\u0131r. Fonksiyonlar\u0131n kendi i\u00e7indeki de\u011fi\u015fkenlere eri\u015fme ve hat\u0131rlama yetene\u011fini sa\u011flar. Bu rehberde, kapan\u0131mlar\u0131 derinlemesine inceleyece\u011fiz ve nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131, ne zaman kullan\u0131ld\u0131klar\u0131n\u0131 ve ne zaman kullan\u0131ld\u0131\u011f\u0131n\u0131 \u00f6rneklerle a\u00e7\u0131klayaca\u011f\u0131z.<\/p>\n<h2>Kapan\u0131mlar Nedir?<\/h2>\n<p>Kapan\u0131mlar, JavaScript&#8217;te bir fonksiyonun tan\u0131mland\u0131\u011f\u0131 yerin d\u0131\u015f\u0131nda dahi, fonksiyonun kapsam\u0131ndaki de\u011fi\u015fkenlere eri\u015febildi\u011fi bir mekanizmad\u0131r. Ba\u015fka bir deyi\u015fle, bir i\u00e7 fonksiyon, d\u0131\u015f fonksiyonun kapsam\u0131ndaki de\u011fi\u015fkenlere eri\u015febilir ve bunlar\u0131 &#8220;hat\u0131rlayabilir&#8221;.<\/p>\n<p>Bu \u00f6zelli\u011fi a\u00e7\u0131klamak i\u00e7in basit bir \u00f6rnek:<\/p>\n<p>&#8220;`javascript<br \/>\nfunction outerFunction() {<br \/>\n  let outerVar = &#8220;D\u0131\u015f De\u011fi\u015fken&#8221;;<\/p>\n<p>  function innerFunction() {<br \/>\n    console.log(outerVar);<br \/>\n  }<\/p>\n<p>  return innerFunction;<br \/>\n}<\/p>\n<p>let myInnerFunction = outerFunction();<br \/>\nmyInnerFunction(); \/\/ \u00c7\u0131kt\u0131: &#8220;D\u0131\u015f De\u011fi\u015fken&#8221;<br \/>\n&#8220;`<\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>innerFunction<\/code>, <code>outerFunction<\/code>&#8216;\u0131n kapsam\u0131ndaki <code>outerVar<\/code> de\u011fi\u015fkenine eri\u015febilir ve de\u011ferini yazd\u0131rabilir. Bu, <code>innerFunction<\/code>, <code>outerFunction<\/code>&#8216;\u0131n kapsam\u0131n\u0131 &#8220;kapatt\u0131\u011f\u0131&#8221; ve <code>outerVar<\/code> de\u011fi\u015fkenine eri\u015febildi\u011fi i\u00e7in m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<h2>Kapan\u0131mlar Neden \u00d6nemlidir?<\/h2>\n<p>Kapan\u0131mlar\u0131n JavaScript&#8217;te birka\u00e7 \u00f6nemli avantaj\u0131 vard\u0131r:<\/p>\n<ul>\n<li><strong>Veri Gizlili\u011fi:<\/strong> Kapan\u0131mlar, de\u011fi\u015fkenleri d\u0131\u015f d\u00fcnyadan gizlemeyi sa\u011flar. \u0130\u00e7 fonksiyonlar d\u0131\u015f fonksiyonun kapsam\u0131ndaki de\u011fi\u015fkenlere eri\u015febilse de, bu de\u011fi\u015fkenlere do\u011frudan eri\u015filemez.<\/li>\n<li><strong>Durum Y\u00f6netimi:<\/strong> Kapan\u0131mlar, fonksiyonun durumunu hat\u0131rlamak i\u00e7in kullan\u0131labilir. \u00d6rne\u011fin, bir saya\u00e7 olu\u015fturmak i\u00e7in bir kapan\u0131m kullan\u0131labilir:<\/li>\n<li><strong>Fonksiyonel Programlama:<\/strong> Kapan\u0131mlar, fonksiyonel programlaman\u0131n \u00f6nemli bir par\u00e7as\u0131d\u0131r. Fonksiyonlar, di\u011fer fonksiyonlar\u0131 parametre olarak alabilir veya d\u00f6nd\u00fcrebilir ve bu da kodun daha mod\u00fcler ve yeniden kullan\u0131labilir olmas\u0131n\u0131 sa\u011flar.<\/li>\n<\/ul>\n<h2>Kapan\u0131mlar\u0131n Kullan\u0131m Alanlar\u0131<\/h2>\n<p>Kapan\u0131mlar, bir\u00e7ok farkl\u0131 uygulamada kullan\u0131l\u0131r:<\/p>\n<ul>\n<li><strong>\u00c7al\u0131\u015fan Kapan\u0131mlar (Closures in Action):<\/strong> Kapan\u0131mlar, JavaScript&#8217;te bir\u00e7ok farkl\u0131 \u015fekilde kullan\u0131l\u0131r. \u00d6rne\u011fin, bir sayac\u0131n de\u011feri i\u00e7in ge\u00e7erli de\u011feri saklamak i\u00e7in kapan\u0131mlar kullan\u0131labilir:<\/li>\n<li><strong>Olay \u0130\u015fleyicileri:<\/strong> Kapan\u0131mlar, olay i\u015fleyicilerinde kullan\u0131labilir. \u00d6rne\u011fin, bir d\u00fc\u011fmeye t\u0131kland\u0131\u011f\u0131nda, t\u0131klama an\u0131nda ge\u00e7erli de\u011feri hat\u0131rlayan bir kapan\u0131m kullan\u0131labilir.<\/li>\n<li><strong>Fonksiyonel Programlama:<\/strong> Kapan\u0131mlar, fonksiyonel programlamada yayg\u0131n olarak kullan\u0131l\u0131r. Kapan\u0131mlar, fonksiyonlar\u0131 parametre olarak alabilir veya d\u00f6nd\u00fcrebilir ve bu da kodun daha mod\u00fcler ve yeniden kullan\u0131labilir olmas\u0131n\u0131 sa\u011flar.<\/li>\n<\/ul>\n<h2>Kapan\u0131mlar ve Bellek Y\u00f6netimi<\/h2>\n<p>Kapan\u0131mlar, bellekte yer kaplayan nesnelerdir. Bir fonksiyonun kapsam\u0131 sona erdi\u011finde bile, i\u00e7 fonksiyonlar\u0131n kullanabilece\u011fi de\u011fi\u015fkenler bellekten silinmez. Bu nedenle, kapan\u0131mlar\u0131n dikkatli kullan\u0131lmas\u0131 \u00f6nemlidir, aksi takdirde bellek s\u0131z\u0131nt\u0131lar\u0131na neden olabilirler.<\/p>\n<p>Bellek s\u0131z\u0131nt\u0131lar\u0131na neden olabilecek baz\u0131 durumlar:<\/p>\n<ul>\n<li><strong>D\u00f6ng\u00fclerde Kapan\u0131mlar:<\/strong> Bir d\u00f6ng\u00fc i\u00e7inde bir kapan\u0131m olu\u015fturulur ve d\u00f6ng\u00fc her yinelemede bir de\u011fi\u015fkene ba\u011flan\u0131rsa, d\u00f6ng\u00fc tamamland\u0131\u011f\u0131nda bile de\u011fi\u015fken bellekten silinmez.<\/li>\n<li><strong>Kapan\u0131mlar\u0131n S\u0131k Kullan\u0131m\u0131:<\/strong> \u00c7ok say\u0131da kapan\u0131m olu\u015fturulmas\u0131, bellek t\u00fcketimini art\u0131rabilir.<\/li>\n<\/ul>\n<h2>\u00d6rnekler<\/h2>\n<p>Kapan\u0131mlar\u0131n JavaScript&#8217;te nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6steren baz\u0131 \u00f6rnekler:<\/p>\n<h3>1. Saya\u00e7 \u00d6rne\u011fi<\/h3>\n<p>&#8220;`javascript<br \/>\nfunction counter() {<br \/>\n  let count = 0;<\/p>\n<p>  return function() {<br \/>\n    count++;<br \/>\n    return count;<br \/>\n  };<br \/>\n}<\/p>\n<p>let myCounter = counter();<br \/>\nconsole.log(myCounter()); \/\/ \u00c7\u0131kt\u0131: 1<br \/>\nconsole.log(myCounter()); \/\/ \u00c7\u0131kt\u0131: 2<br \/>\nconsole.log(myCounter()); \/\/ \u00c7\u0131kt\u0131: 3<br \/>\n&#8220;`<\/p>\n<p>Bu \u00f6rnekte, <code>counter<\/code> fonksiyonu, bir saya\u00e7 de\u011feri tutan bir kapan\u0131m d\u00f6nd\u00fcr\u00fcr. <code>myCounter<\/code> de\u011fi\u015fkenine atanm\u0131\u015f olan kapan\u0131m, her \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda sayac\u0131n de\u011ferini art\u0131r\u0131r.<\/p>\n<h3>2. Olay \u0130\u015fleyicisi \u00d6rne\u011fi<\/h3>\n<p>&#8220;`javascript<br \/>\nlet button = document.getElementById(&#8216;myButton&#8217;);<\/p>\n<p>button.addEventListener(&#8216;click&#8217;, function() {<br \/>\n  console.log(&#8216;D\u00fc\u011fmeye t\u0131kland\u0131!&#8217;);<br \/>\n});<br \/>\n&#8220;`<\/p>\n<p>Bu \u00f6rnekte, <code>addEventListener<\/code> fonksiyonu, bir d\u00fc\u011fmeye t\u0131kland\u0131\u011f\u0131nda \u00e7a\u011fr\u0131lacak bir kapan\u0131m al\u0131r. Kapan\u0131m, d\u00fc\u011fmeye t\u0131kland\u0131\u011f\u0131nda hangi fonksiyonun \u00e7a\u011fr\u0131laca\u011f\u0131n\u0131 &#8220;hat\u0131rlar&#8221;.<\/p>\n<h3>3. Fonksiyonel Programlama \u00d6rne\u011fi<\/h3>\n<p>&#8220;`javascript<br \/>\nfunction add(x) {<br \/>\n  return function(y) {<br \/>\n    return x + y;<br \/>\n  };<br \/>\n}<\/p>\n<p>let add5 = add(5);<br \/>\nconsole.log(add5(3)); \/\/ \u00c7\u0131kt\u0131: 8<br \/>\n&#8220;`<\/p>\n<p>Bu \u00f6rnekte, <code>add<\/code> fonksiyonu, bir say\u0131 alan ve ba\u015fka bir say\u0131 alan ve toplamlar\u0131n\u0131 d\u00f6nd\u00fcren bir kapan\u0131m d\u00f6nd\u00fcr\u00fcr. <code>add5<\/code> de\u011fi\u015fkeni, 5 ekleyen bir kapan\u0131m i\u00e7erir. Bu, kodun daha mod\u00fcler ve yeniden kullan\u0131labilir olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Kapan\u0131mlar, JavaScript&#8217;te g\u00fc\u00e7l\u00fc bir kavramd\u0131r ve bir\u00e7ok farkl\u0131 uygulamada kullan\u0131labilir. Kapan\u0131mlar\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve ne zaman kullan\u0131laca\u011f\u0131n\u0131 anlamak, daha g\u00fc\u00e7l\u00fc ve verimli JavaScript kodu yazman\u0131za yard\u0131mc\u0131 olabilir.<\/p>\n<p>Kapan\u0131mlar hakk\u0131nda daha fazla bilgi edinmek i\u00e7in <a href=\"https:\/\/fatihsoysal.com\" target=\"_blank\" rel=\"noopener\">fatihsoysal.com<\/a> web sitesini ziyaret edebilirsiniz. Bu sitede, JavaScript hakk\u0131nda kapsaml\u0131 makaleler ve kaynaklar bulabilirsiniz.<\/p>\n<p>#Etiketler: JavaScript, Kapan\u0131mlar, Closures, Fonksiyon Kapsam\u0131, Fonksiyonel Programlama, Bellek Y\u00f6netimi, Durum Y\u00f6netimi, Veri Gizlili\u011fi, Olay \u0130\u015fleyicileri, JavaScript \u00d6rnekleri, Fonksiyonel Programlama \u00d6rnekleri, Bellek S\u0131z\u0131nt\u0131lar\u0131, Kapan\u0131mlar\u0131n Kullan\u0131m Alanlar\u0131<\/p>\n","protected":false},"excerpt":{"rendered":"JavaScript&#8217;te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler JavaScript&#8217;te kapan\u0131mlar, fonksiyonlar\u0131n kapsam\u0131 ve belle\u011fi hakk\u0131nda g\u00fc\u00e7l\u00fc bir kavramd\u0131r.&hellip;","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":[1],"tags":[],"class_list":{"0":"post-3678","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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&#039;te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler<\/title>\n<meta name=\"description\" content=\"JavaScript&#039;te kapan\u0131mlar, fonksiyonlar\u0131n kapsam\u0131 ve belle\u011fi hakk\u0131nda g\u00fc\u00e7l\u00fc bir kavramd\u0131r. Fonksiyonlar\u0131n kendi i\u00e7indeki de\u011fi\u015fkenlere eri\u015fme ve hat\u0131rlama yetene\u011fini sa\u011flar. Bu rehberde, kapan\u0131mlar\u0131 derinlemesine inceleyece\u011fiz ve nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131, ne zaman kullan\u0131ld\u0131klar\u0131n\u0131 ve ne zaman kullan\u0131ld\u0131\u011f\u0131n\u0131 \u00f6rneklerle a\u00e7\u0131klayaca\u011f\u0131z.\" \/>\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\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript&#039;te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler\" \/>\n<meta property=\"og:description\" content=\"JavaScript&#039;te kapan\u0131mlar, fonksiyonlar\u0131n kapsam\u0131 ve belle\u011fi hakk\u0131nda g\u00fc\u00e7l\u00fc bir kavramd\u0131r. Fonksiyonlar\u0131n kendi i\u00e7indeki de\u011fi\u015fkenlere eri\u015fme ve hat\u0131rlama yetene\u011fini sa\u011flar. Bu rehberde, kapan\u0131mlar\u0131 derinlemesine inceleyece\u011fiz ve nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131, ne zaman kullan\u0131ld\u0131klar\u0131n\u0131 ve ne zaman kullan\u0131ld\u0131\u011f\u0131n\u0131 \u00f6rneklerle a\u00e7\u0131klayaca\u011f\u0131z.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-12T04:45:11+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=\"4 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"JavaScript&#8217;te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler\",\"datePublished\":\"2024-11-12T04:45:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/\"},\"wordCount\":852,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/#respond\"]}],\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/\",\"name\":\"JavaScript'te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2024-11-12T04:45:11+00:00\",\"description\":\"JavaScript'te kapan\u0131mlar, fonksiyonlar\u0131n kapsam\u0131 ve belle\u011fi hakk\u0131nda g\u00fc\u00e7l\u00fc bir kavramd\u0131r. Fonksiyonlar\u0131n kendi i\u00e7indeki de\u011fi\u015fkenlere eri\u015fme ve hat\u0131rlama yetene\u011fini sa\u011flar. Bu rehberde, kapan\u0131mlar\u0131 derinlemesine inceleyece\u011fiz ve nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131, ne zaman kullan\u0131ld\u0131klar\u0131n\u0131 ve ne zaman kullan\u0131ld\u0131\u011f\u0131n\u0131 \u00f6rneklerle a\u00e7\u0131klayaca\u011f\u0131z.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript&#8217;te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler\"}]},{\"@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'te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler","description":"JavaScript'te kapan\u0131mlar, fonksiyonlar\u0131n kapsam\u0131 ve belle\u011fi hakk\u0131nda g\u00fc\u00e7l\u00fc bir kavramd\u0131r. Fonksiyonlar\u0131n kendi i\u00e7indeki de\u011fi\u015fkenlere eri\u015fme ve hat\u0131rlama yetene\u011fini sa\u011flar. Bu rehberde, kapan\u0131mlar\u0131 derinlemesine inceleyece\u011fiz ve nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131, ne zaman kullan\u0131ld\u0131klar\u0131n\u0131 ve ne zaman kullan\u0131ld\u0131\u011f\u0131n\u0131 \u00f6rneklerle a\u00e7\u0131klayaca\u011f\u0131z.","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\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/","og_locale":"tr_TR","og_type":"article","og_title":"JavaScript'te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler","og_description":"JavaScript'te kapan\u0131mlar, fonksiyonlar\u0131n kapsam\u0131 ve belle\u011fi hakk\u0131nda g\u00fc\u00e7l\u00fc bir kavramd\u0131r. Fonksiyonlar\u0131n kendi i\u00e7indeki de\u011fi\u015fkenlere eri\u015fme ve hat\u0131rlama yetene\u011fini sa\u011flar. Bu rehberde, kapan\u0131mlar\u0131 derinlemesine inceleyece\u011fiz ve nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131, ne zaman kullan\u0131ld\u0131klar\u0131n\u0131 ve ne zaman kullan\u0131ld\u0131\u011f\u0131n\u0131 \u00f6rneklerle a\u00e7\u0131klayaca\u011f\u0131z.","og_url":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2024-11-12T04:45:11+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"4 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"JavaScript&#8217;te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler","datePublished":"2024-11-12T04:45:11+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/"},"wordCount":852,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/#respond"]}],"copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/","url":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/","name":"JavaScript'te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2024-11-12T04:45:11+00:00","description":"JavaScript'te kapan\u0131mlar, fonksiyonlar\u0131n kapsam\u0131 ve belle\u011fi hakk\u0131nda g\u00fc\u00e7l\u00fc bir kavramd\u0131r. Fonksiyonlar\u0131n kendi i\u00e7indeki de\u011fi\u015fkenlere eri\u015fme ve hat\u0131rlama yetene\u011fini sa\u011flar. Bu rehberde, kapan\u0131mlar\u0131 derinlemesine inceleyece\u011fiz ve nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131, ne zaman kullan\u0131ld\u0131klar\u0131n\u0131 ve ne zaman kullan\u0131ld\u0131\u011f\u0131n\u0131 \u00f6rneklerle a\u00e7\u0131klayaca\u011f\u0131z.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-kapanimlar-closures-tam-bir-rehber-ve-ornekler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JavaScript&#8217;te Kapan\u0131mlar (Closures): Tam Bir Rehber ve \u00d6rnekler"}]},{"@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\/3678","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=3678"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/3678\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=3678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=3678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=3678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}