为什么无法从原型更改构造函数?
- 论坛
- 为什么无法从原型更改构造函数?
13 浏览
为什么无法从原型更改构造函数?
我有一个例子。
function Rabbit() { var jumps = "yes"; }; var rabbit = new Rabbit(); alert(rabbit.jumps); // undefined alert(Rabbit.prototype.constructor); // 输出函数Rabbit()的代码
我想要改变Rabbit()
中的代码,使得var jumps
变成公共的。我这样做:
Rabbit.prototype.constructor = function Rabbit() { this.jumps = "no"; }; alert(Rabbit.prototype.constructor); // 再次输出函数Rabbit()的代码,并且加上新的this.jumps = "no"; var rabbit2 = new Rabbit(); // 使用新的构造函数创建新对象 alert(rabbit2.jumps); // 但是仍然输出undefined
为什么无法通过这种方式改变构造函数中的代码呢?