开发者社区> 问答> 正文

js 中重写原型,不重定向原型中的 constructor 会有问题吗?

function Person(name){

this.name = name;

}

Person.prototype = {

constructor: Person,
say: function(){
    console.log(this.name);
}

};
例如上面的代码,重写了 Person 原型之后如果不把 constructor 重定向,会有问题吗?在什么场景下会有问题?原型中的 constructor 属性有什么作用?

展开
收起
a123456678 2016-03-13 18:54:04 2373 0
1 条回答
写回答
取消 提交回答
  • 倘若你在重写原型之前,用构造函数创建了实例,那么重写原型的话,之前创建的实例的原型将不是重写后的原型,所以不能继承重写后原型的属性和方法。

    function Person(name){
        this.name = name;
    }
    var a = new Person('solarjoker');
    Person.prototype = {
        constructor: Person,
        say: function(){
            console.log(this.name);
        }
    };
    a.say();//error
    2019-07-17 19:03:02
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载