JavaScript devralma işleminde bulduğum bir örneği uygulamaya çalışıyorum ve alt nesne beklenildiği şekilde oluşturmuyor gibi görünüyor. Aşağıdaki örnekte, jill örneğini oluşturmak bir Jill nesnesini döndürmez ve alt öğe veya üst öğeden yöntemler çağrılmaz.JavaScript kurucusu çalıştırılmıyor mu?
Sen yanlış nesne başlatıyorsunuzvar Person = function() {
this.name = "unnamed";
}
Person.prototype.sayName = function() {
console.log("My name is " + this.name);
}
var Jill = function() {
var jill = function() {
Person.call(this);
this.name = "Jill";
};
jill.prototype = Object.create(Person.prototype);
jill.prototype.constructor = jill;
jill.prototype.expressJoy = function() {
console.log("Huray!");
};
return jill;
}
var jill = new Jill();
console.log(jill instanceof Jill); // false
jill.expressJoy(); // error, is not a function
jill.sayName(); // error, seen if comment out previous line
'jill', gerçek kurucudur. Bunu 'Jill' işlevine neden sardığınızı bilemezsiniz. Bu bir IIFE olmalıydı, belki? – Bergi
Yep, @Bergi - doğru fikre sahip olduğunuza benziyor. – scader