"javascript olarak , her nesne bir zincir. Bir nesne olmayan bir özellik için sorulduğunda üst nesnesidir oluşturan, oluşturulduğu nesneye bir gizli bağlantıya sahip olan sordu ... mülkiyet bulundu kadar veya kök nesneye ulaşana kadar sürekli zincir kadar. "Yöntem kalıtım
Her zaman, yukarıdaki sözcüklerin şimdi bile gerçek olduğunu düşünüyorum, Bu yüzden doğrulamak için bazı testler yaptım, Aşağıdaki gibi nesnelerin ilişkisini tanımlamak için tasarlanmıştır. lütfen onu gözden geçir .
Aşağıdaki kod gibi görünmelidir.
//Shape - superclass
function Shape() {
this.x = 0;
this.y = 0;
};
Shape.prototype.move = function(x, y) {
this.x += x;
this.y += y;
alert('Shape move');
};
// Rectangle - subclass
function Rectangle() {
Shape.call(this); //call super constructor.
}
Rectangle.prototype.move = function(x, y) {
this.x += x;
this.y += y;
alert('Rectangle move');
};
// Square - subclass
function Square(){
Shape.call(this);
}
Rectangle.prototype = Object.create(Shape.prototype);
Square.prototype=Object.create(Rectangle.prototype);
var rect = new Rectangle();
var sq= new Square();
sq.x=1;
sq.y=1;
sq.move(1,1);
move
yöntem Square.prototype
içinde bulunamaz, So JavaScript zinciri, ben bu Rectangle.prototype
bulunacaktır düşünmüştü, ama aslında o bulunursa aşağıdaki üst nesneleri bulacaksınız yana sq.move(1,1)
aslında Rectangle.prototype
ait move
yöntemi çağırmak yerine Shape.prototype.move
dememizin kök Shape.prototype
, Ben anlayamıyorum nedir? Bir şey özledim mi teşekkürler.
Gerekir yerine Şekli 'den' Kare() 'contructor çağrı' Dikdörtgen() '()' üzerine yazılır? 'Square' yerine' Shape' alt sınıf bırak ben deneyeyim @all bir 'Rectangle' alt sınıf (?) – nnnnnn
Çünkü, ben sorun olmadığını düşünüyorum. – DaGLiMiOuX
olduğu –