使用对象文字和使用构造函数创建对象(理论上)以及何时使用它们之间有什么区别?
我不是指我们如何使用它们。我的意思是他们如何在幕后工作以及他们的机制如何不同!
答案 0 :(得分:1)
基本上 - 在ES2015之前 - 使用对象文字创建对象时,您无法向对象添加方法。
从ES2015开始,可以向对象文字添加方法,这使得对象文字和类声明非常接近:
var obj = {
// __proto__
__proto__: theProtoObj,
// Shorthand for ‘handler: handler’
handler,
// Methods
toString() {
// Super calls
return 'd ' + super.toString();
},
// Computed (dynamic) property names
[ 'prop_' + (() => 42)() ]: 42
};
另一个重要的事情是当你想要创建一个类的实例时 - 你想要根据该类声明创建一个类声明和init对象。