0

我知道 jQuery 有深度混合,例如

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

,dojo 有吗?如果有如何使用?如果没有,我怎样才能获得相同的功能?谢谢!

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 回答
0

我最近遇到了同样的问题,并决定创建Jake,它只是一个移植 Dojo 不提供的 jQuery 函数的小文件。所以,现在我可以在我的 Dojo 应用程序中使用它(以及在我不能使用 jQuery 的任何其他情况下)。

随意使用它来加入您的项目。

目前支持:

  • 延长
  • 每个
  • 抵消
于 2013-07-10T02:53:36.237 回答