更改构造函数原型的问题

问题描述

| 我目前正在阅读Stoyan Stefanov的书“面向对象的JavaScript”,但偶然发现了一个有趣的问题。这是代码:
var shape = {
    type: \'shape\',getType: function() {
        return this.type;
    }
};

function Triangle(a,b,c) {
    this.a = a;
    this.b = b;
    this.c = c;
    this.type = \'triangle\';
}

Triangle.prototype = shape; // changing the prototype object
Triangle.prototype.getPerimeter = function() {
    return this.a + this.b + this.c;
}

var t = new Triangle(1,2,3);
t.constructor; // logs Object() instead of Triangle(a,c)
如您所见,这是构造函数的一个简单示例,其中包含原型对象的一些属性。但是对象t的构造函数属性应指向Object()对象,而不是Triangle(a,b,c)。但是,如果我对原型更改发表评论,那么一切都很好。我怎么了 (请重新阅读《面向对象的Java脚本和JavaScript模式》中的整个原型章节,找不到答案)。 附言对不起,我的英语不好,尝试练习。 :)     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)