Class enchant.Class
Eine Klasse für Klassen, die Vererbung unterstützen.
- Defined in: enchant.js
Constructor Attributes | Constructor Name and Description |
---|---|
enchant.Class(superclass, definition)
|
Method Summary
Method Attributes | Method Name and Description |
---|---|
<static> |
enchant.Class.applyMixingRecipe(target, source)
Wendet das übergebene MixingRecipe auf die Zielklasse an, erstellt eine neue Klassendefinition und liefert diese als Rückgabewert zurück.
|
<static> |
enchant.Class.create(superclass, definition)
Erstellt eine neue Klasse
Wenn eine Klasse definiert wird, die von einer anderen Klasse erbt, wird der Konstruktor der
Basisklasse als Standard definiert.
|
<static> |
enchant.Class.getInheritanceTree()
|
<static> |
enchant.Class.mixClasses(firstClass, secondClass, boolean, Function)
Erstellt ein MixingRecipe aus der "secondClass" Klasse, wendet dieses auf die "firstClass" Klasse an und liefert das Ergebnis daraus zurück.
|
<static> |
enchant.Class.mixClassesFromRecipe(firstClass, secondClass, recipe, Function)
Nutzt das gegebene MixingRecipe, wendet es auf die "firstClass" Klasse an und liefert das Ergebnis daraus zurück - das MixingRecipe sollte der secondClass entsprechen.
|
Class Detail
enchant.Class(superclass, definition)
- Parameters:
- {Function} superclass Optional
- Die Klasse, deren Klassendefinition die neue Klasse erben wird.
- {*} definition Optional
- Klassendefinition.
Method Detail
-
<static> {Function
} enchant.Class.applyMixingRecipe(target, source)Wendet das übergebene MixingRecipe auf die Zielklasse an, erstellt eine neue Klassendefinition und liefert diese als Rückgabewert zurück. Die Zielklasse wird nicht modifiziert.
Siehe auch: enchant.Class.MixingRecipe.
Defined in: mixing.enchant.js.var recipe = new enchant.Class.MixingRecipe({ // ... see enchant.Class.MixingRecipe },{ // ... see enchant.Class.MixingRecipe },{ // ... see enchant.Class.MixingRecipe }); var NewClass = applyMixingRecipe(Class1,recipe);
- Parameters:
- {Function<constructor Funktion die mit enchant.Class erstellt wurde>} target
- Die Klasse auf die das MixingRecipe angewendet wird.
- {enchant.Class.MixingRecipe} source
- Das MixingRecipe, welches genutzt wird um der Zielklasse neue Funktionalität zu verleihen.
- Returns:
- {Function<constructor Funktion die mit enchant.Class erstellt wurde>} Die Klasse, welche das Ergebnis des Mixens der Zielklasse (target) mit dem Rezept (source) darstellt.
-
<static> enchant.Class.create(superclass, definition)Erstellt eine neue Klasse Wenn eine Klasse definiert wird, die von einer anderen Klasse erbt, wird der Konstruktor der Basisklasse als Standard definiert. Sollte dieser Konstruktor in der neuen Klasse überschrieben werden, sollte der vorherige Konstruktor explizit aufgerufen werden, um eine korrekte Klasseninitialisierung sicherzustellen.
var Ball = Class.create({ // definiert eine unabhängige Klasse. initialize: function(radius) { ... }, // Methodendefinitionen fall: function() { ... } }); var Ball = Class.create(Sprite); // definiert eine Klasse die von "Sprite" erbt. var Ball = Class.create(Sprite, { // definiert eine Klasse die von "Sprite" erbt. initialize: function(radius) { // überschreibt den Standardkonstruktor. Sprite.call(this, radius * 2, radius * 2); // Aufruf des Konstruktors der Basisklasse. this.image = core.assets['ball.gif']; } });
- Parameters:
- {Function} superclass Optional
- The class from which the new class will inherit the class definition.
- {*} definition Optional
- Class definition.
-
<static> {Function[]} enchant.Class.getInheritanceTree()
- Parameters:
- {Function}
- Returns:
- {Function[]}
-
<static> {Function
} enchant.Class.mixClasses(firstClass, secondClass, boolean, Function)Erstellt ein MixingRecipe aus der "secondClass" Klasse, wendet dieses auf die "firstClass" Klasse an und liefert das Ergebnis daraus zurück. Das Standardverhalten dabei ist, alle Funktionen und Properties der "secondClass" Klasse, einschließlich der Funktionen und Properties in deren Superklassen zu nehmen und diese in der Zielklasse beim mixen zu dekorieren.
Methoden welche dekoriert werden, rufen automatisch die Methoden der sourceClass und der Zielklasse des Mixens, mit Hilfe des _mixing Properties, auf. Daher muss dies nicht selbst berücksichtigt werden.Des Weiteren wird eine Standard-Initialisierungsmethode, welche die Initialisierungsmethode beider Klassen aufruft, hinzugefügt. Die Signatur für diese Standard-Initialisierungsmethode ist:
([firstClass Konstruktor Arg 1],...,[firstClass Konstruktor Arg n],[secondClass Konstruktor Arg 1],...[secondClass Konstruktor Arg n])Beide Klassen werden nicht verändert.
Siehe auch: enchant.Class.MixingRecipe
Defined in: mixing.enchant.js.var MapGroup = enchant.Class.mixClasses(Map, Group,true); var map = new MapGroup(16, 16); var SpriteLabel = enchant.Class.mixClasses(Sprite, Label,true); var kumaLabel = new SpriteLabel(32,32,'Kuma');
- Parameters:
- {Function<constructor Funktion die mit enchant.Class erstellt wurde>} firstClass
- Die Klasse auf die das MixingRecipe angewendet wird.
- {Function<constructor Funktion die mit enchant.Class erstellt wurde>} secondClass
- Die Klasse aus der das MixingRecipe erstellt wird.
- boolean Optional
- onlyOwnProperties Wenn dieses Argument true ist, werden Funktionen und Properties der Superklassen der "secondClass" Klasse ignoriert.
- Function Optional
- initializeMethod Falls gegeben, wird diese Methode, anstelle der Standard-Initialisierungsmethode, zum Initialisieren der resultierenden Klasse verwendet.
- Returns:
- {Function<constructor Funktion die mit enchant.Class erstellt wurde>} Die Klasse, welche das Ergebnis des Mixens beider Klassen darstellt.
-
<static> {Function
} enchant.Class.mixClassesFromRecipe(firstClass, secondClass, recipe, Function)Nutzt das gegebene MixingRecipe, wendet es auf die "firstClass" Klasse an und liefert das Ergebnis daraus zurück - das MixingRecipe sollte der secondClass entsprechen. Eine Standard-Initialisierungsmethode wird hinzugefügt, welche die Initialisierungsmethode beider Klassen aufruft. Die Signatur für diese Standard-Initialisierungsmethode ist:
([firstClass Konstruktor Arg 1],...,[firstClass Konstruktor Arg n],[secondClass Konstruktor Arg 1],...[secondClass Konstruktor Arg n])Beide Klassen werden nicht verändert.
Siehe auch: enchant.Class.MixingRecipe
Defined in: mixing.enchant.js.var MapGroup = enchant.Class.mixClasses(Map, Group,true); var map = new MapGroup(16, 16); var SpriteLabel = enchant.Class.mixClasses(Sprite, Label,true); var kumaLabel = new SpriteLabel(32,32,'Kuma');
- Parameters:
- {Function<constructor Funktion die mit enchant.Class erstellt wurde>} firstClass
- Die Klasse auf die das MixingRecipe angewendet wird.
- {Function<constructor Funktion die mit enchant.Class erstellt wurde>} secondClass
- Die Klasse die dem MixingRecipe entpsricht, wird für die Standard-Initialisierungsmethode genutzt.
- {enchant.Class.MixingRecipe} recipe
- Das MixingRecipe, welches auf die firstClass Klasse angewendet wird - sollte der secondClass entsprechen.
- Function Optional
- initializeMethod Falls gegeben, wird diese Methode, anstelle der Standard-Initialisierungsmethode, zum Initialisieren der resultierenden Klasse verwendet.
- Returns:
- {Function<constructor Funktion die mit enchant.Class erstellt wurde>} Die Klasse, welche das Ergebnis des Mixens beider Klassen mit Hilfe des MixingRecipe darstellt.