Ich habe statische Eigenschaften, auf die ich von Instanzen meiner Backbone.Model-Objekte zugreifen möchte. Ich weiß, dass ich den Elternkonstruktor fest codieren könnte, um die Methode aufzurufen, aber das verhindert, dass ich polymorphe statische Funktionen habe. Ich möchte zum Beispiel die Funktion foo
in ExtendedInventory
bei Bedarf überschreiben können, ohne irgendeinen anderen Code ändern zu müssen.
Was funktioniert in Ihrem Beispiel nicht genau? In Firefox und IE bekomme ich zwei Popups mit 'bar', die wie das beabsichtigte Ergebnis aussieht? Der statische Teil scheint sich ebenfalls gut zu verhalten, siehe dieses Spiel .
(Das ist mit der HEAD-Version von Backbone, übrigens; weiß nicht, ob das einen Unterschied macht)
Hmm. Obwohl der obige Code funktioniert, würde ich es nicht so lassen. Wenn die Funktion über ein Objekt der Klasse logisch zugänglich ist, definieren Sie eine Instanzmethode in der Basisklasse, die die Funktion class / static aufruft. Dies macht den Code sauberer und klarer, denke ich (und die Kunden müssen sich nicht an die etwas arkane Syntax erinnern):
%Vor%Tags und Links javascript backbone.js prototypal-inheritance