2011-06-23 132 views
1

我想从jQuery的扩展对象

var x = $.extend({}, obj1, obj2); 

延长道场对象与此类似这是一个解决方案

var x; 
dojo.extend(x,obj1); 
dojo.extend(x,obj2); 

或者,我可以做

dojo.extend(x,obj1,obj2); 

这是可用

var x = dojo.extend(obj1, obj2); 

回答

2

如果要实现相同的语义$.extend(),你必须使用dojo.mixin()代替dojo.extend()(延伸原型):

var x = dojo.mixin({}, obj1); 
dojo.mixin(x, obj2); 

编辑:如果你想保留的代码上一个线,你可以这样做:

var x = dojo.mixin(dojo.mixin({}, obj1), obj2); 
+0

它是否需要多个参数,这是可能的'var x = dojo.mixin({},obj1,obj2); –

+0

和另一个查询...假设我做了'var x = dojo.mixin({},dojo.mixin(obj1,obj2)); ',现在obj1将被改变..我是对吗? –

+0

@Boopathi,它只需要两个参数,是的,在第二个例子中'obj1'确实会被修改。 –