javascript 闭包疑问
javascript 闭包疑问
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下:vartest=(function(){vararr2=[1,2,3,3];returnfunction(){return...

复制代码 代码如下:

var test=(function() { var arr2=[1,2,3,3]; return function(){ return arr2; }; })()

Array.prototype.f1= function () { return []; }

Array.prototype.f2= function () { this.length=0; return this; }

然后用两种方式调用:

一:var arr= test();

console.log(arr.length);结果是4

arr.f1();

arr= test();

console.log(arr.length);结果是4

这个好理解;

二:var arr= test();

console.log(arr.length);结果是4

arr.f2();

arr= test();

console.log(arr.length);结果是0

不知道为什么会这样,难道arr.f2()可以修改test函数中闭包中的arr2;

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类