首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS Prototype错误“未定义Prototype”

JS Prototype错误“未定义Prototype”
EN

Stack Overflow用户
提问于 2016-09-06 20:51:53
回答 2查看 738关注 0票数 0

我是JS的新手,我写了下面的代码,但我得到了错误"Prototype is not defined“。

代码语言:javascript
复制
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());
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-06 20:57:38

[[Prototype]]只是对内部属性(原型链中的链接)的规范演讲。要通过原型链将obj链接到proto,可以使用Object.create

代码语言:javascript
复制
   var obj = Object.create(proto);
   obj.name = 'obj';

或ES6/ES2015中的Object.setPrototypeOf

代码语言:javascript
复制
    var obj = {                
        name:'obj'
    };

    Object.setPrototypeOf(obj, proto);

或者,还有遗留属性__proto__,但不一定推荐使用该属性:

代码语言:javascript
复制
    var obj = {                
        __proto__: proto,
        name:'obj'
    };
票数 2
EN

Stack Overflow用户

发布于 2016-09-06 20:58:58

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

解决方案是作为其他答案。阅读这篇文章以获得完整的解释:

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39349478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档