关于js匿名函数以及闭包的学习(一)
关于网上的一个例子一直是一直半解,直到上次和同事讨论之后才明白;
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()());
此例子涉及到闭包,但是对我最大的困扰确实匿名函数的调用.匿名函数默认的调用都是window对象,这个是很多人都不知道的问题.像上一个例子 输出为"The Window" ,默认的调用就是window对象,this就是widow ,
如果调用写为 alert(object.getNameFunc()().call({name:"test Name"}); 则输出的结果为:test Name ,这个就比较直观了.
闭包问题最主要的是作用域链的问题,区分作用域,就不难理解了,但是闭包最大的问题就是占用内存,所有的函数及变量都储存在内存中,这点是一劣势.
自己的一些学习笔记,有点乱了!.... 下次好好编辑一下
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。