EaselJS kullanarak oyun yapıyorum ve demo dosyalarında kullanılan kalıtım modelinin nasıl çalıştığını birilerinin açıklayabileceğini merak ediyorum. Özellikle, aşağıdaki dosyaya bakıyorum: ... https://github.com/CreateJS/EaselJS/blob/master/examples/assets/Ship.js hattı 7 günüEaselJS: Birisi demolarda kullanılan kalıtım paternini açıklayabilir mi?
, Gemi prototip bir createjs.container()
örneğine olarak ayarlanır
var p = Ship.prototype = new createjs.Container();
Ve sonra hat 28, bir referans üzerine orijinal yapıcı depolanır: Son olarak
p.Container_initialize = p.initialize; //unique to avoid overiding base class
, Ship
nesne hattı üzerinde başlatılır 30
p.initialize = function() {
this.Container_initialize();
Başımı bu desenin etrafına sarmaya çalışıyorum, çünkü geçmişte rastladığım bir şeyden farklı. Birisi bana neden bir sınıf örneğini yeni bir sınıf 'prototip olarak kullanmak isteyeceğinizi açıklayabilir mi? Belki de bana bu örüntüün bir açıklaması olan bir bağlantıya işaret eder misiniz? Burada herhangi bir yardım büyük beğeni topluyor ... Bu sorunun biraz belirsiz olduğunu anlıyorum.
Bu yaygın bir desen var, burada öğretici kontrol https://developer.mozilla.org/ tr-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript – elclanrs
Teşekkürler, bu soruya oldukça cevap veriyor. Spesifik olarak: "Uzmanlık sınıfı genellikle çocuk olarak adlandırılır ve diğer sınıf genellikle ebeveyn olarak adlandırılır. JavaScript'te bunu, ana sınıfın bir örneğini çocuk sınıfına atayarak ve sonra uzmanlaştırarak yapabilirsiniz. Modern tarayıcılarda Ayrıca devralma uygulamak için Object.create kullanın. " –
Tüm bunları anlamak için en iyi seçiminiz, EaselJS için bir Typescript tanım dosyası. –