Javascript 在对象文本中设置原型

Javascript 在对象文本中设置原型,javascript,object,prototype,Javascript,Object,Prototype,我是一个学习JavaScript的初学者。通过阅读本页,我无法理解这段代码是如何定义对象的。我希望使用“foo:bar”构造,但不确定\uuuuu proto\uuuu是一个内置名称还是在这里做一些特殊的事情。发生了什么事 在ES2015中,对象文本被扩展以支持在构造时设置原型、foo:foo赋值的简写、定义方法、进行超级调用以及使用表达式计算属性名。总之,它们还使对象文字和类声明更紧密地结合在一起,并使基于对象的设计受益于一些相同的便利 这个代码片段实际上是一堆普通的key:value符号 \

我是一个学习JavaScript的初学者。通过阅读本页,我无法理解这段代码是如何定义对象的。我希望使用“foo:bar”构造,但不确定
\uuuuu proto\uuuu
是一个内置名称还是在这里做一些特殊的事情。发生了什么事

在ES2015中,对象文本被扩展以支持在构造时设置原型、foo:foo赋值的简写、定义方法、进行超级调用以及使用表达式计算属性名。总之,它们还使对象文字和类声明更紧密地结合在一起,并使基于对象的设计受益于一些相同的便利


这个代码片段实际上是一堆普通的
key:value
符号

\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
是的,这是一个特殊的字段,而不仅仅是一个任意的名称。它是搜索继承树时使用的对象。一般不鼓励直接使用它。阅读以更好地理解它

handler,
这是
handler:handler
的语法糖。通常,您希望在对象中有一个字段,并从具有相同名称的变量中为其指定一个值,因此他们在规范中包含了该缩写

var x = 10;
var y = 15;

// longhand
var point = { x: x, y: y };

// shorthand
var point = { x, y };
toString(){
这是语法糖:

var obj = {
    toString: function () {
        ...
    }
};
// create an anonymous function and call it immediately
(function () {
    return 42;
})();
返回“d”+super.toString();
super
关键字使从父类调用函数变得更加清晰。在此之前,它看起来像这样:

var Person = function (name) {
    this.name = name;
}

var Engineer = function (name) {
    // "super call"
    Person.call(this, name);

    this.profession = 'Engineer';
}
class Engineer extends Person {
    constructor (name) {
        super(name);

        this.profession = 'Engineer';
    }
}
现在它可以如下所示:

var Person = function (name) {
    this.name = name;
}

var Engineer = function (name) {
    // "super call"
    Person.call(this, name);

    this.profession = 'Engineer';
}
class Engineer extends Person {
    constructor (name) {
        super(name);

        this.profession = 'Engineer';
    }
}
['prop_'+(()=>42)()]:42
可能是我的最爱。此语法允许您在对象文本中使用动态键名称。在此之前,您必须执行以下操作:

var obj = {};
obj['prop_' + 42] = 42;
但是,使用动态文字语法,您可以执行以下操作:

var obj = {
    ['prop_' + 42]: 42
};
(()=>42)(
语法糖用于:

var obj = {
    toString: function () {
        ...
    }
};
// create an anonymous function and call it immediately
(function () {
    return 42;
})();

关于
\uuuu proto\uuuu
的几乎所有知识都可以在上找到。