Documentation generator: JsDoc Toolkit 2.4.0
Template: Codeview 1.2
Generated on: 2016-0-4 21:25

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.

Class Summary
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 Summary
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, Array, 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)
{Object} overrideMethods
Die Methoden, welche in der Zielklasse überschrieben werden.
(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).

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.