常見使用
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分流的那個函數可以使用原來函數的變量
(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(){//執行這個分流函數的是window對象,所以當前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++);//會先從當前函數域中尋找,在從foo函數域中尋找,在從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總結
閉包就是某個函數在多帶帶執行期間,可以使用一個變量,這個變量是在別的函數體里面定義的。也就是說變量的使用范圍擴大了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/85591.html
摘要:大名鼎鼎的閉包面試必問。閉包的作用是什么。看到閉包在哪了嗎閉包到底是什么五年前,我也被這個問題困擾,于是去搜了并總結下來。關于閉包的謠言閉包會造成內存泄露錯。閉包里面的變量明明就是我們需要的變量,憑什么說是內存泄露這個謠言是如何來的因為。 本文為饑人谷講師方方原創文章,首發于 前端學習指南。 大名鼎鼎的閉包!面試必問。請用自己的話簡述 什么是「閉包」。 「閉包」的作用是什么。 首先...
摘要:完美的閉包,對,閉包就這么簡單。這僅僅是閉包的一部分,閉包利用函數作用域達到了訪問外層變量的目的。此時一個完整的閉包實現了,的垃圾回收機制由于閉包的存在無法銷毀變量。 1.閉包是指有權訪問另一個函數作用域中的變量的函數。 上面這段話來自 javascript 高級程序設計 第三版 P178 。作者說閉包是一個函數,它有訪問另一個函數作用域中的變量的能力。 2.函數訪問它被創建時所處的...
摘要:到底什么是閉包這個問題在面試是時候經常都會被問,很多小白一聽就懵逼了,不知道如何回答好。上面這么說閉包是一種特殊的對象。閉包的注意事項通常,函數的作用域及其所有變量都會在函數執行結束后被銷毀。從而使用閉包模塊化代碼,減少全局變量的污染。 閉包,有人說它是一種設計理念,有人說所有的函數都是閉包。到底什么是閉包?這個問題在面試是時候經常都會被問,很多小白一聽就懵逼了,不知道如何回答好。這個...
閱讀 2086·2023-04-25 19:15
閱讀 2263·2021-11-23 09:51
閱讀 1271·2021-11-17 09:33
閱讀 2176·2021-08-26 14:15
閱讀 2488·2019-08-30 15:54
閱讀 1587·2019-08-30 15:54
閱讀 2175·2019-08-30 12:50
閱讀 1140·2019-08-29 17:08