在研究js模块化写法的时候产生的疑问,代码如下 // 立即执行函数写法,保证外部不能访问到 count var module1 = (function() { var count = 0; var m1 = function() { return count; }; return { m1: m1 }; })(); // 如果现在想给 module1 添加新的方法 module1 = (function(mod) { mod.m2 = function() { return count; } return mod; })(module1); console.log(module1.m1());//可以访问到 count // console.log(module1.m2());我想知道为什么 module1.m2() 访问不到 count ?
1 回答

扬帆大鱼
TA贡献1799条经验 获得超9个赞
缕一缕思路:m1之所以能访问到count,是因为m1跟count在同一个function里声明的,也就是他们在同一个作用域下,但是m2所在的function跟count可不是在同一个function作用域下的,也没有存在function嵌function的关系,自然访问不到。
题主是觉得module1本身就跟count在同一个function下,所以给module1加个方法,这个方法就跟count在同一个作用域下?
添加回答
举报
0/150
提交
取消