相关疑难解决方法(0)

构造函数使用ES6简写表示法表现不同

ES6引入了一种简写符号来初始化具有函数和属性的对象.

// ES6 shorthand notation
const obj1 = {
    a(b) {
        console.log("ES6: obj1");
    }
};

// ES5
var obj2 = {
    a: function a(b) {
        console.log("ES5: obj2");
    }
};

obj2.a();
obj1.a();

new obj2.a();
new obj1.a();
Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,这些不同的符号表现不同.如果我new obj1.a()在浏览器中(测试过的Chrome和Firefox),我会得到一个TypeError: obj1.a is not a constructor.new obj2.a()表现完全正常.

这里发生了什么?有没有人有解释,和/或文档/规范的链接?

javascript methods shorthand ecmascript-6

10
推荐指数
1
解决办法
264
查看次数

标签 统计

ecmascript-6 ×1

javascript ×1

methods ×1

shorthand ×1