Class enchant.Class.MixingRecipe
Diese Klasse beschreibt auf welche Art und Weise das mischen mit der Zielklasse durchgeführt wird. Für diesen Zweck enthählt ein MixingRecipe drei Properties:
- decorateMethods (Methoden, welche in der Zielklasse dekoriert werden, siehe Dekorierer Entwurfsmuster)
- overrideMethods (Methoden, welche in der Zielklasse überschrieben werden)
- overrideProperties (Properties, welche in der Zielklasse redefiniert werden)
Siehe auch: enchant.Class.mixClasses, enchant.Class.mixClassesFromRecipe und enchant.Class.applyMixingRecipe.
- Defined in: mixing.enchant.js
- Extends Object
Constructor Attributes | Constructor Name and Description |
---|---|
enchant.Class.MixingRecipe(decorateMethods, overrideMethods, properties)
Erstellt ein neues MixingRecipe, welches beschreibt, auf welche Art und Weise Funktionen und Properties während des Mischens hinzugefügt werden.
|
Field Attributes | Field Name and Description |
---|---|
Die Methoden, welche in der Zielklasse dekoriert werden, siehe Dekorierer Entwurfsmuster.
|
|
Die Methoden, welche in der Zielklasse überschrieben werden.
|
|
Die Properties, welche in der Zielklasse redefiniert werden.
|
Method Summary
Method Attributes | Method Name and Description |
---|---|
<static> |
enchant.Class.MixingRecipe.createFromClass(sourceClass, boolean, Array
Nimmt die Methoden und Properties der übergebenen Klasse um ein neues MixingRecipe zu erstellen.
|
Class Detail
enchant.Class.MixingRecipe(decorateMethods, overrideMethods, properties)
Erstellt ein neues MixingRecipe, welches beschreibt, auf welche Art und Weise Funktionen und Properties während des Mischens hinzugefügt werden.
Um ein Rezept aus einer bereits existierend Klasse zu erstellen, ist auf enchant.Class.MixingRecipe.createFromClass zu verweisen.
var recipe = new enchant.Class.MixingRecipe({ add : function(value) { this._myValue += 3*value; this._mixing.add.apply(this,arguments); }, mult : function(value) { this._myValue *= value*7; this._mixing.mult.apply(this,arguments); } },{ sub : function(value) { this._myValue -= 5*value; } },{ myProperty : { get: function() { return 3*this._myPropertyValue; }, set : function(val) { this._myPropertyValue = val; } }}); var NewClass = enchant.Class.applyMixingRecipe(Class1,recipe);
- Parameters:
- {Object} decorateMethods
- Die Methoden, welche in der Zielklasse dekoriert werden, siehe Dekorierer Entwurfsmuster. Auf die dekoriertie Methode kann in der durch das Mixen erstellten Klasse mit Hilfe des _mixing Property zugegriffen werden, z.B. this._mixing.myFunction.apply(this,arguments).
(Objekt welches Schlüssel-Wert Paare enthält, Schlüssel := Funktionsname, Wert := Funktion) - {Object} overrideMethods
- Die Methoden, welche in der Zielklasse überschrieben werden.
(Objekt welches Schlüssel-Wert Paare enthält, Schlüssel := Funktionsname, Wert := Funktion). - {Object} properties
- Die Properties, welche in der Zielklasse redefiniert werden.
(Objekt welches Schlüssel-Wert Paare enthält, Schlüssel := Funktionsname, Wert := Propertydescriptor).
Field Detail
{Object}
decorateMethods
Die Methoden, welche in der Zielklasse dekoriert werden, siehe Dekorierer Entwurfsmuster. Auf die dekoriertie Methode kann in der durch das Mixen erstellten Klasse mit Hilfe des _mixing Property zugegriffen werden, z.B. this._mixing.myFunction.apply(this,arguments).
(Objekt welches Schlüssel-Wert Paare enthält, Schlüssel := Funktionsname, Wert := Funktion)
(Objekt welches Schlüssel-Wert Paare enthält, Schlüssel := Funktionsname, Wert := Funktion)
{Object}
overrideMethods
Die Methoden, welche in der Zielklasse überschrieben werden.
(Objekt welches Schlüssel-Wert Paare enthält, Schlüssel := Funktionsname, Wert := Funktion).
(Objekt welches Schlüssel-Wert Paare enthält, Schlüssel := Funktionsname, Wert := Funktion).
{Object}
overrideProperties
Die Properties, welche in der Zielklasse redefiniert werden.
(Objekt welches Schlüssel-Wert Paare enthält, Schlüssel := Funktionsname, Wert := Propertydescriptor).
(Objekt welches Schlüssel-Wert Paare enthält, Schlüssel := Funktionsname, Wert := Propertydescriptor).
Method Detail
-
<static> {enchant.Class.MixingRecipe} enchant.Class.MixingRecipe.createFromClass(sourceClass, boolean, Array
, Array , Array ) Nimmt die Methoden und Properties der übergebenen Klasse um ein neues MixingRecipe zu erstellen. Das Standardverhalten dabei ist, alle Funktionen und Properties der übergebenen Klasse, einschließlich der Funktionen und Properties in den 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.Durch die entsprechenden Argumente der Funktion kann das Standardverhalten zu verändert werden.
var recipe = enchant.Class.MixingRecipe.createFromClass(Class2, true, ['overrideFunction1','overrideFunction2'], ['ignoreFunction1','ignoreFunction2'], ['ignoreProperty1','ignorePropterty2']); recipe.overrideMethods['additionalFunction'] = new function() { console.log('Hello, World'); } recipe.overrideProperties['newProperty'] = { get: function() { return this._newProperty; }, set : function(val) { this._newProperty = val; } } var NewClass = enchant.Class.mixClassesFromRecipe(Class1,Class2,recipe);
- Parameters:
- {Function<constructor Funktion die mit enchant.Class erstellt wurde>} sourceClass
- Die Klasse aus der das MixingRecipe erstellt wird.
- boolean Optional
- onlyOwnProperties Wenn dieses Argument true ist, werden Funktionen und Properties der Superklassen ignoriert.
-
Array
Optional - functionOverrideNameList Ein Array welches Namen von Funktionen enthält, welche während des Mixens überschrieben werden sollen.
-
Array
Optional - functionIgnoreNameList Ein Array welches Namen von Funktionen enthält, welche bei der MixingRecipe erstellung ignoriert werden sollen.
-
Array
Optional - propertyIgnoreNameList Ein Array welches Namen von Properties enthält, welche bei der MixingRecipe erstellung ignoriert werden sollen.
- Returns:
- {enchant.Class.MixingRecipe} Das MixingRecipe, welches aus der Definition der sourceClass erstellt wurde.