JS Prototype错误" Prototype未定义"

时间:2016-09-06 12:51:53

标签: javascript prototype

我是JS新手,我在下面编写代码,但是我得到了错误" Prototype未定义"。

var proto = {
    describe: function () {
        return 'name: ' + this.name;
    }
};

var obj = {                
    [[Prototype]]: proto, //error in this line
    name:'obj'
};

console.log(proto.describe());
console.log(obj.describe());

2 个答案:

答案 0 :(得分:2)

[[Prototype]]只是内部属性的规范 - 语音(原型链中的链接)。要通过原型链将objproto相关联,您可以使用Object.create

   var obj = Object.create(proto);
   obj.name = 'obj';

或ES6 / ES2015中的Object.setPrototypeOf

    var obj = {                
        name:'obj'
    };

    Object.setPrototypeOf(obj, proto);

或者,有遗留属性__proto__,但不一定建议这样做:

    var obj = {                
        __proto__: proto,
        name:'obj'
    };

答案 1 :(得分:-1)

你不能像这样设置对象的原型。

解决方案与其他答案一样。 阅读这篇文章以获得完整的解释:

https://zeekat.nl/articles/constructors-considered-mildly-confusing.html