【发布时间】:2016-12-08 22:24:13
【问题描述】:
在 ES6 中我们可以做匿名类:
var entity = class {
}
但我们也可以实例化它:
var entity = new class {
constructor(name) { this.name = name; }
getName() { return this.name; }
}('Foo');
console.log(entity.getName()); // Foo
它背后做了什么,它会带来什么好处,它还会带来什么警告?
【问题讨论】:
-
为什么不直接使用对象字面量?还是实际的构造函数?
-
个人口味;我喜欢 C++ 和 Java 风格的对象声明。
-
我不认为这和普通的原型类创建有什么不同。这只是语法差异。 quora.com/…
-
看起来这个博客条目足够体面,可以与我的问题相关:jasonwyatt.co/post/866536821/…
-
ES5 也有匿名构造函数:
entity = new function(name) { this.name = name }("Foo")。class只是构造函数和一些附加功能的语法糖。因此,当有匿名构造函数时,也会有匿名类。
标签: javascript oop ecmascript-6 javascript-objects anonymous-function