0

jQueryには次のような深いミックスインがあることを知っています

var options = $.extend(true,target,object1,object2)

道場にはありますか?もし使い方があるなら?もしそうでなければどうすれば同じ機能を得ることができますか?ありがとう!

4

2 に答える 2

0

「lang.mixin」( http://livedocs.dojotoolkit.org/dojo/_base/lang#mixin ) がありますが、真に同等ではありません。

次のスレッドに詳細情報があります: http://dojo-toolkit.33424.n3.nabble.com/Deep-dojo-mixin-td3986157.html

そして、ケン・ベンジャミンは時間をかけてこれを書きました:

    mixinDeep: function(dest, source) { 
     //Recursively mix the properties of two objects 
     var empty = {}; 
     for (var name in source) { 
          if(!(name in dest) || (dest[name] !== source[name] && (!(name in empty) || empty[name] !== source[name]))){ 
               try { 
                    if ( source[name].constructor==Object ) { 
                         dest[name] = this.mixinDeep(dest[name], source[name]); 
                    } else { 
                         dest[name] = source[name]; 
                    }; 
               } catch(e) { 
                    // Property in destination object not set. Create it and set its value. 
                    dest[name] = source[name]; 
               }; 
          }; 
     } 
     return dest; 
} 

ただし、配列にはいくつかの制限があります。

于 2013-03-13T17:31:20.360 に答える