JavaScript verfügt über ein klassenfreies Objektsystem, in dem Objekte Eigenschaften direkt von anderen Objekten erben. Das ist wirklich mächtig, aber klassisch ausgebildeten Programmierern unbekannt. Wenn Sie versuchen, klassische Entwurfsmuster direkt auf JavaScript anzuwenden, sind Sie frustriert. Wenn Sie jedoch lernen, mit dem Prototyp von JavaScript zu arbeiten, werden Ihre Bemühungen belohnt.
...
Es ist Lisp in Cs Kleidung.
Was bedeutet das für einen Spieleentwickler, der mit Canvas und HTML5 arbeitet? Ich habe mir diese Frage zu nützlichen Entwurfsmustern beim Spielen angesehen, aber die prototypische Vererbung unterscheidet sich stark von der klassischen Vererbung, und es gibt sicherlich Unterschiede in der besten Art und Weise, einige dieser allgemeinen Muster anzuwenden.
Zum Beispiel ermöglicht klassisches Erbe uns zu schaffen moveableEntity
Klasse und erweitern , dass mit allen Klassen, die sie bewegt in unserer Spielwelt ( player
, monster
, bullet
, etc.). Sicher, Sie können JavaScript stark aktivieren, um auf diese Weise zu arbeiten, aber auf diese Weise kämpfen Sie gegen seine Natur. Gibt es einen besseren Ansatz für diese Art von Problem, wenn wir die prototypische Vererbung zur Hand haben?