常见使用
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总结
闭包就是某个函数在多带带执行期间,可以使用一个变量,这个变量是在别的函数体里面定义的。也就是说变量的使用范围扩大了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/85591.html
摘要:大名鼎鼎的闭包面试必问。闭包的作用是什么。看到闭包在哪了吗闭包到底是什么五年前,我也被这个问题困扰,于是去搜了并总结下来。关于闭包的谣言闭包会造成内存泄露错。闭包里面的变量明明就是我们需要的变量,凭什么说是内存泄露这个谣言是如何来的因为。 本文为饥人谷讲师方方原创文章,首发于 前端学习指南。 大名鼎鼎的闭包!面试必问。请用自己的话简述 什么是「闭包」。 「闭包」的作用是什么。 首先...
摘要:完美的闭包,对,闭包就这么简单。这仅仅是闭包的一部分,闭包利用函数作用域达到了访问外层变量的目的。此时一个完整的闭包实现了,的垃圾回收机制由于闭包的存在无法销毁变量。 1.闭包是指有权访问另一个函数作用域中的变量的函数。 上面这段话来自 javascript 高级程序设计 第三版 P178 。作者说闭包是一个函数,它有访问另一个函数作用域中的变量的能力。 2.函数访问它被创建时所处的...
摘要:到底什么是闭包这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。上面这么说闭包是一种特殊的对象。闭包的注意事项通常,函数的作用域及其所有变量都会在函数执行结束后被销毁。从而使用闭包模块化代码,减少全局变量的污染。 闭包,有人说它是一种设计理念,有人说所有的函数都是闭包。到底什么是闭包?这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。这个...
阅读 2096·2023-04-25 19:15
阅读 2282·2021-11-23 09:51
阅读 1284·2021-11-17 09:33
阅读 2194·2021-08-26 14:15
阅读 2504·2019-08-30 15:54
阅读 1602·2019-08-30 15:54
阅读 2187·2019-08-30 12:50
阅读 1153·2019-08-29 17:08