使用ES6的 对象字面量简写语法(object-shorthand), IDEA提示警告

https://img.mukewang.com/5c0626690001433007110477.jpg

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, 为什么?

注:

  1. 低版本IDEA 也存在问题

  2. JavaScript language version 选择了 ECMAScript 6

  3. Node.js and NPM 选择了 7.7.3


摇曳的蔷薇
浏览 909回答 1
1回答

慕桂英3389331

这个和 IDE 无关,而是在 JS 中,两种写法的区别。第一种写法,func1 是在执行那一行的时候才定义的,而第二种写法是在执行obj的时候就已经定义了的。由于 func2 是在定义 obj 的过程中定义的,因此,当执行上下文处于 func2 的时候,obj 的定义可能还没有执行完,也就会认为可能找不到 obj
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript