Почему нельзя изменить функцию конструктора из прототипа?

У меня есть такой пример.

function Rabbit() {
    var jumps = "yes";
};
var rabbit = new Rabbit();
alert(rabbit.jumps);                    // undefined
alert(Rabbit.prototype.constructor);    // outputs exactly the code of the function Rabbit();

Я хочу изменить код в Rabbit () , чтобы var jumps стал общедоступным. Я делаю это так:

Rabbit.prototype.constructor = function Rabbit() {
    this.jumps = "no";
};
alert(Rabbit.prototype.constructor);    // again outputs the code of function Rabbit() and with new this.jumps = "no";
var rabbit2 = new Rabbit();             // create new object with new constructor
alert(rabbit2.jumps);                   // but still outputs undefined

Почему нельзя изменить код в функции конструктора таким образом?

51
задан katspaugh 13 February 2012 в 09:10
поделиться