değişkenler ilk kez OO javascript yapıyorum. Miras ve prototip hakkında okudum ve onu kırdığımı düşündüm. Bu küçük örneği keşfedene kadar.Kalıtım, "ebeveyn"
function TestObject(data)
{
this.test_array = [];
this.clone_array = [];
this.dosomestuff = function()
{
for(var i=0; i<this.test_array.length; i++)
{
this.clone_array[i]=this.test_array[i];
}
}
this.__construct = function(data)
{
console.log("Testing Object Values" ,this.clone_array);
this.test_array = data;
};
}
TestObject2.prototype = new TestObject();
function TestObject2(data)
{
this.__construct(data);
this.dothings = function()
{
this.dosomestuff();
}
}
aşağıdaki yaparsanız:
Testing Object Values, []
Testing Object Values, []
gösterir Ancak: Sorun taşımaktadır
Testing Object Values, []
Testing Object Values, [1,2,3,4]
var foo = new TestObject2([1,2,3,4]);
foo.dothings();
var bar = new TestObject2([4,5,6]);
bar.dothings();
Ben konsol göstermek beklenir Tabii bu çağrı:
TestObject2.prototype = new TestObject();
TestObject öğesindeki üst değişkenleri, el ile __construct yönteminde sıfırlama dışında "sıfırlamak" için nasıl alabilirim?
testObject tüm değerler/yöntemleri devralma TestObject2 ve ben bir PHP OO şekilde beklediğiniz gibi "yeni" davranması için başka bir yolu var mı? (JS'nin bunu yapmasının, beynimin bana doğru bir şekilde hizmet verdiği gibi, PHP'nin bu şekilde PHP gibi doğru bir şekilde çalışıp çalışmadığı gibi) gerçekten çok garip olduğunu düşünüyorum.
Demo: http://jsbin.com/olino3 – johnwards