为了账号安全,请及时绑定邮箱和手机立即绑定

js变量作用域的问题

js变量作用域的问题

MMMHUHU 2018-11-22 18:14:24
在研究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在同一个作用域下?


查看完整回答
反对 回复 2018-12-19
  • 1 回答
  • 0 关注
  • 456 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号