関数としてブレンド

1768 ワード

関数としてブレンド
ブレンドで定義された変数とブレンドは表示され、呼び出し元の役割ドメインで使用できます.例外は1つだけです.つまり、呼び出し元に同じ名前の変数(別のmixin呼び出しで定義された変数を含む)が含まれている場合、変数はコピーされず、呼び出し元のローカル範囲に存在する変数のみが保護され、親範囲から継承された変数が上書きされます.
  • Mixin範囲の変数と混合からなる混合は、呼び出し元の役割ドメインで使用することができ、可視である.
  • Mixinと戻り値mixinは関数と似ており、mixinで定義された変数は戻り値として使用されます.
  • Mixinは、別のmixinが別のmixinに定義されるたびに、戻り値として使用することができる別のmixinを定義する.

  • 例:
        // 1:    
        .mixin(){
            @color: green;
            @border: 1px solid red;
            @font-size: 24px;
            @width: 100px;
            @height: 200px;
        }
        .allVar_mixin{
            .mixin();
            color: @color;
            border: @border;
            font-size: @font-size;
            width: @width;
            height: @height;
        }
        //     
        .allVar_mixin{
            color: green;
            border: 1px solid red;
            font-size: 24px;
            width: 100px;
            height: 200px;
        }
        
        
        // 2:mixin           
        .var_reval(@a, @b) {
          @var_reVal: ((@a + @b) / 3);
        }
        div {
          .var_reVal(15px, 30px); 
          //       
          margin: @var_reVal;
        }
        //     
        div {
          margin: 15px;
        }
        
        
        // 3:                    ,                       
        .mixin() {
          @cover: action_scope;
          @notcover: action_scope;
        }
        .xkd {
          padding: @cover @notcover;
          .mixin();
        }
        //            
        @cover: parent_scope; 
        //     
        .xkd {
          padding: action_scope action_scope;
        }
        
        
        // 4:   mixin     
        //    
        .unlock(@value) { 
        //     
          .mix_reval() { 
            declaration: @value;
          }
        }
        #namespace {
          //       
          .unlock(8); 
          //    mixin         
          .mix_reval(); 
        }
        //     
        #namespace {
          declaration: 8;
        }