Böyle bir örneğim var.Neden kurucu işlevini prototipten değiştirmek imkansız?
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();
Ben var jumps
kamu hale gelir, böylece Rabbit()
kodu değiştirmek istiyorum. Ben şu şekilde yaparım:
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
Bu şekilde yapıcı işlevindeki kodu neden değiştirmek mümkün değil?
Sizin ikinci kod yanlış, dolayısıyla hata değerlendirdiği, bir Tavşan atlamak yok diyor - 'this.jumps = "evet"' – wheresrhys
@wheresrhys denemek olmayan tüm boş dizeler (daha uzunluğunda yani dizeleri sıfırdan) JavaScript'te doğru olarak değerlendirmek; Hatta "yanlış", daha çok, sonra, "hayır" ':) – Max