const obj = { b: 1, func1: function () { return obj.b; }, func2 () { return obj.b; }};obj.func1();obj.func2();Intellij IDEA 2017.1中, func1 没有警告, func2 却提示 Variable might not have been initialized6, 为什么?注:低版本IDEA 也存在问题JavaScript language version 选择了 ECMAScript 6Node.js and NPM 选择了 7.7.3
1 回答

慕桂英3389331
TA贡献2036条经验 获得超8个赞
这个和 IDE 无关,而是在 JS 中,两种写法的区别。
第一种写法,func1
是在执行那一行的时候才定义的,而第二种写法是在执行obj的时候就已经定义了的。
由于 func2
是在定义 obj
的过程中定义的,因此,当执行上下文处于 func2
的时候,obj
的定义可能还没有执行完,也就会认为可能找不到 obj
添加回答
举报
0/150
提交
取消