javascript - 使用ES6的 对象字面量简写语法(object-shorthand), IDEA提示警告
本文介绍了javascript - 使用ES6的 对象字面量简写语法(object-shorthand), IDEA提示警告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
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 6
Node.js and NPM
选择了 7.7.3
解决方案
这个和 IDE 无关,而是在 JS 中,两种写法的区别。
第一种写法,func1
是在执行那一行的时候才定义的,而第二种写法是在执行obj的时候就已经定义了的。
由于 func2
是在定义 obj
的过程中定义的,因此,当执行上下文处于 func2
的时候,obj
的定义可能还没有执行完,也就会认为可能找不到 obj
这篇关于javascript - 使用ES6的 对象字面量简写语法(object-shorthand), IDEA提示警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文