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

Class enchant.Class.MixingRecipe

混ぜる先にどういう風に混ぜる処理を行うか設定する. このために、MixingRecipeはプロパティが三つある:

  • decorateMethods(先の関数をラップする関数、デコレータ・パターンを参照してください)
  • overrideMethods (先の関数をオーバーライドする関数)
  • overrideProperties (先のプロパティをオーバーライドするプロパティ)

enchant.Class.mixClassesenchant.Class.mixClassesFromRecipeenchant.Class.applyMixingRecipe を参照してください.

Class Summary
Constructor Attributes Constructor Name and Description
 
enchant.Class.MixingRecipe(decorateMethods, overrideMethods, properties)
混ぜる中、どういう風に関数やプロパティが追加されるか設定する新たなMixingRecipeを生成する.
Field Summary
Field Attributes Field Name and Description
 
先の関数をラップする関数、デコレータ・パターンを参照してください.
 
先の関数をオーバーライドする関数.
 
先のプロパティをオーバーライドするプロパティ.

Method Summary

Method Attributes Method Name and Description
<static>  
enchant.Class.MixingRecipe.createFromClass(sourceClass, boolean, Array, Array, Array)
引数のクルスの関数やプロパティから、MixingRecipeを生成する.

Class Detail

enchant.Class.MixingRecipe(decorateMethods, overrideMethods, properties)
混ぜる中、どういう風に関数やプロパティが追加されるか設定する新たなMixingRecipeを生成する. クラスからMixingRecipeを生成することには enchant.Class.MixingRecipe.createFromClass を参照してください.
     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
先の関数をラップする関数、デコレータ・パターンを参照してください. 混ぜる結果のクラスでラップされた関数をアクセスするように_mixingというプロパティがある、例:this._mixing.myFunction.apply(this,arguments).
(キーと値のペア持っているオブジェクト、キーは関数名、値は関数).
{Object} overrideMethods
先の関数をオーバーライドする関数.
(キーと値のペア持っているオブジェクト、キーは関数名、値は関数).
{Object} properties
先のプロパティをオーバーライドするプロパティ.
(キーと値のペア持っているオブジェクト、キーは関数名、値はプロパティデスクリプタ).

Field Detail

{Object} decorateMethods
先の関数をラップする関数、デコレータ・パターンを参照してください. 混ぜる結果のクラスでラップされた関数をアクセスするように_mixingというプロパティがある、例:this._mixing.myFunction.apply(this,arguments).
(キーと値のペア持っているオブジェクト、キーは関数名、値は関数).
{Object} overrideMethods
先の関数をオーバーライドする関数.
(キーと値のペア持っているオブジェクト、キーは関数名、値は関数).
{Object} overrideProperties
先のプロパティをオーバーライドするプロパティ.
(キーと値のペア持っているオブジェクト、キーは関数名、値はプロパティデスクリプタ).

Method Detail

  • <static> {enchant.Class.MixingRecipe} enchant.Class.MixingRecipe.createFromClass(sourceClass, boolean, Array, Array, Array)
    引数のクルスの関数やプロパティから、MixingRecipeを生成する. デフォルト振舞はsourceClassの全ての関数やプロパティ、スーパークラスの関数やプロパティも使用して、 混ぜる先の関数をラップする(decorate).
    _mixingプロパティでラップされた関数が自動的に、 sourceClassと混ぜる先の関数を呼び出されるので、関係なくてもいい.

    対応引数でデフォルト振舞を変更ができる.

         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 enchant.Classで生成された関数>} sourceClass
    このクラスから、MixingRecipeが生成される.
    boolean Optional
    onlyOwnProperties Trueの場合、スーパークラスの関数やプロパティが無視されない.
    Array Optional
    functionOverrideNameList 混ぜるときオーバーライドされる関数名を持っている配列.
    Array Optional
    functionIgnoreNameList MixingRecipeを生成するとき無視される関数名を持っている配列.
    Array Optional
    propertyIgnoreNameList MixingRecipeを生成するとき無視されるプロパティ名を持っている配列.
    Returns:
    {enchant.Class.MixingRecipe} クラス定義から生成されたMixingRecipe.