我知道jQuery有深层混合,例如
var options = $.extend(true,target,object1,object2)
,dojo有吗?如果有如何使用?如果不能,我怎么能获得相同的功能?谢谢!
答案 0 :(得分:0)
他们有“lang.mixin”(http://livedocs.dojotoolkit.org/dojo/_base/lang#mixin),但它并不是真正等同的。
以下主题有更多信息: http://dojo-toolkit.33424.n3.nabble.com/Deep-dojo-mixin-td3986157.html
Ken Benjamin花时间写这篇文章:
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;
}
但是,它对阵列有一些限制。
答案 1 :(得分:0)
我最近遇到了同样的问题并决定创建Jake,这只是一个移植到Dojo不提供的jQuery函数的小文件。所以,现在我可以在我的Dojo应用程序中使用它(以及在任何其他我不能使用jQuery的情况下)。
随意使用它来放入你的项目。
目前支持: