每次评估表达式时,这种书写风格都会导致创建新的构造函数和原型对象。如果使用这种方法创建多个对象,则它们将不会获得类/原型的任何好处。
如果您打算使用此模式创建单例对象,那么您也会失败。构造函数仍然可以创建,甚至可以访问-使用可以轻松创建第二个实例new entity.constructor
,从而破坏了整个目的。
var entity = {
name: 'Foo',
getName() { return this.name; }
};
console.log(entity.name); // Foo
不要被这种new class
模式很常见的其他语言所欺骗,它与JavaScript的工作方式大不相同。