Özellikle, nesnel yönelimli programlama ile sınıfları ve neyi simüle etmediğimi JavaScript ile oynuyordum. Ben AnotherClass
yapıcısı çağırmak için gerekli nasıl ben beğenmedim, Kalıtım için prototip kopyalansın mı?
MyClass.prototype = new AnotherClass();
ulaşma bu şekilde haberi Ama memnun değildi. Bu yüzden etrafta oynuyordum ve işe yarayan ve temelde ikinci bir fikir isteyen bir şey buldum. Prototip klonlama ile
function clone (obj)
{
function CloneFactory() {}
CloneFactory.prototype = obj;
return new CloneFactory();
}
MyClass.prototype = clone(AnotherClass.prototype);
bunun yeni bir kopyasını almak ve kalıtsal özelliklerini değiştirerek ebeveynin prototipin özelliklerini etkilemeyecek şekilde MyClass
'ın prototip olduğunu atayın. Bunun gibi MyClass.prototype = AnotherClass.prototype
olur.
Stres testleri yaptım ve bu, belirli durumlarda daha verimlidir, yani ebeveynin yapıcısında çok fazla kod olduğunda, aksi halde aynıdır. Başka bir fayda (ya da en azından yararlı olduğunu buluyorum), alt sınıflardan gizlenen bilgilerin bir dereceye kadar izin vermesidir. Herhangi bir ayrıcalıklı yöntem ve üye devralınmayacak.
Baktığım bazı büyük tuzaklar var mı?
Aslında ben JavaScript için oldukça yeni, JavaScript ile bir uzman değilim, bu yüzden ben Google üzerinden bir şey bulmak gibi olamaz çünkü bu konuda ikinci bir görüş almak istiyorum. Kötü kod uygulamak istemiyorum :)!
teşekkürler! Hatta şimdiye kadar Object.create' 'bilmiyordum. – SpaceFace