常見使用
var Zepto_me = (function(){ var $ = function(){alert(1212)}; $.isWindow = function(obj){return obj!=null && obj == window}; return $; })(); window.Zepto_me = Zepto_me; window.$ === undefined && (window.$ = Zepto_me); $().isWindow(window);局部變量的累加
function foo(x){ var a = x; return function(){ alert(a++); }; }; var f = foo(1); f();// 1 f();// 2分流的那個(gè)函數(shù)可以使用原來(lái)函數(shù)的變量
(function(i){ var a = i; (function(){ alert(a); }()); }(1));
var name = "the window"; var object = { name : "the object", getName : function(){ name = this.name; return function(){//執(zhí)行這個(gè)分流函數(shù)的是window對(duì)象,所以當(dāng)前this表示的是window return this.name;//the window return name;//the object } } } alert(object.getName()());尋找變量的路徑
var a =33; function foo(x){ // var a = x; return function(){ alert(a++);//會(huì)先從當(dāng)前函數(shù)域中尋找,在從foo函數(shù)域中尋找,在從window中尋找 }; }; var f = foo(1); window.f(); window.f();常見
var Zepto_me = (function(){ function isWindow(obj){ return obj != null && obj == obj.window } var $ = function(){}; $.isWindow = isWindow;//閉包 return $;//閉包 })(); alert(Zepto_me.isWindow(window));//true總結(jié)
閉包就是某個(gè)函數(shù)在多帶帶執(zhí)行期間,可以使用一個(gè)變量,這個(gè)變量是在別的函數(shù)體里面定義的。也就是說(shuō)變量的使用范圍擴(kuò)大了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/85591.html
摘要:大名鼎鼎的閉包面試必問。閉包的作用是什么。看到閉包在哪了嗎閉包到底是什么五年前,我也被這個(gè)問題困擾,于是去搜了并總結(jié)下來(lái)。關(guān)于閉包的謠言閉包會(huì)造成內(nèi)存泄露錯(cuò)。閉包里面的變量明明就是我們需要的變量,憑什么說(shuō)是內(nèi)存泄露這個(gè)謠言是如何來(lái)的因?yàn)椤? 本文為饑人谷講師方方原創(chuàng)文章,首發(fā)于 前端學(xué)習(xí)指南。 大名鼎鼎的閉包!面試必問。請(qǐng)用自己的話簡(jiǎn)述 什么是「閉包」。 「閉包」的作用是什么。 首先...
摘要:完美的閉包,對(duì),閉包就這么簡(jiǎn)單。這僅僅是閉包的一部分,閉包利用函數(shù)作用域達(dá)到了訪問外層變量的目的。此時(shí)一個(gè)完整的閉包實(shí)現(xiàn)了,的垃圾回收機(jī)制由于閉包的存在無(wú)法銷毀變量。 1.閉包是指有權(quán)訪問另一個(gè)函數(shù)作用域中的變量的函數(shù)。 上面這段話來(lái)自 javascript 高級(jí)程序設(shè)計(jì) 第三版 P178 。作者說(shuō)閉包是一個(gè)函數(shù),它有訪問另一個(gè)函數(shù)作用域中的變量的能力。 2.函數(shù)訪問它被創(chuàng)建時(shí)所處的...
摘要:第二梯隊(duì)理解有了第一梯隊(duì)的認(rèn)識(shí),我們慢慢修正大腦中對(duì)閉包的認(rèn)識(shí)。理解這句話就可以很好的與閉包這兩個(gè)字關(guān)聯(lián)起來(lái)理解閉包這個(gè)概念了。總結(jié)第二梯隊(duì)理解閉包是一個(gè)有特定功能的函數(shù)。第四梯隊(duì)理解閉包通過(guò)訪問外部變量,一個(gè)閉包可以維持這些變量。 閉包 閉包的概念困惑了我很久,記得當(dāng)時(shí)我面試的時(shí)候最后一面有一個(gè)問題就是問題關(guān)于閉包的問題,然而到現(xiàn)在已經(jīng)完全不記得當(dāng)時(shí)的題目是啥了,但仍然能夠回憶起當(dāng)時(shí)...
摘要:到底什么是閉包這個(gè)問題在面試是時(shí)候經(jīng)常都會(huì)被問,很多小白一聽就懵逼了,不知道如何回答好。上面這么說(shuō)閉包是一種特殊的對(duì)象。閉包的注意事項(xiàng)通常,函數(shù)的作用域及其所有變量都會(huì)在函數(shù)執(zhí)行結(jié)束后被銷毀。從而使用閉包模塊化代碼,減少全局變量的污染。 閉包,有人說(shuō)它是一種設(shè)計(jì)理念,有人說(shuō)所有的函數(shù)都是閉包。到底什么是閉包?這個(gè)問題在面試是時(shí)候經(jīng)常都會(huì)被問,很多小白一聽就懵逼了,不知道如何回答好。這個(gè)...
閱讀 2078·2023-04-25 19:15
閱讀 2246·2021-11-23 09:51
閱讀 1265·2021-11-17 09:33
閱讀 2166·2021-08-26 14:15
閱讀 2477·2019-08-30 15:54
閱讀 1583·2019-08-30 15:54
閱讀 2168·2019-08-30 12:50
閱讀 1133·2019-08-29 17:08