对象文字 - Vs - 构造函数

时间:2017-08-10 22:31:55

标签: javascript oop object

使用对象文字和使用构造函数创建对象(理论上)以及何时使用它们之间有什么区别?

我不是指我们如何使用它们。我的意思是他们如何在幕后工作以及他们的机制如何不同!

1 个答案:

答案 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对象。