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

查看:116
本文介绍了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, 为什么?

注:

  1. 低版本IDEA 也存在问题

  2. JavaScript language version 选择了 ECMAScript 6

  3. Node.js and NPM 选择了 7.7.3

解决方案

这个和 IDE 无关,而是在 JS 中,两种写法的区别。

第一种写法,func1 是在执行那一行的时候才定义的,而第二种写法是在执行obj的时候就已经定义了的。

由于 func2 是在定义 obj 的过程中定义的,因此,当执行上下文处于 func2 的时候,obj 的定义可能还没有执行完,也就会认为可能找不到 obj

这篇关于javascript - 使用ES6的 对象字面量简写语法(object-shorthand), IDEA提示警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆