jQueryには次のような深いミックスインがあることを知っています
var options = $.extend(true,target,object1,object2)
道場にはありますか?もし使い方があるなら?もしそうでなければどうすれば同じ機能を得ることができますか?ありがとう!
jQueryには次のような深いミックスインがあることを知っています
var options = $.extend(true,target,object1,object2)
道場にはありますか?もし使い方があるなら?もしそうでなければどうすれば同じ機能を得ることができますか?ありがとう!
「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;
}
ただし、配列にはいくつかの制限があります。