在Ember.js中,与jQuery $.extend()相当的是什么?

7

我曾经在jQuery中这样克隆一个变量:

var clone = $.extend(true, {}, orig);

在Ember.js中是否有与此相当的方法?
2个回答

18

那就像是jquery中我最不喜欢的方法名称。每次我想合并两个对象时,都需要花费几秒钟来考虑它叫什么。在Ember中,你也可以使用assign

Ember.assign({first: 'Tom'}, {last: 'Dale'}); // {first: 'Tom', last: 'Dale'}
var a = {first: 'Yehuda'}, b = {last: 'Katz'};
Ember.assign(a, b); // a == {first: 'Yehuda', last: 'Katz'}, b == {last: 'Katz'}

或者在你的情况下

Ember.assign({}, orig);

http://emberjs.com/api/classes/Ember.html#method_assign

但是请注意,它不像copy方法一样支持深度克隆。


2
Ember.merge() 似乎已经被弃用(尽管文档中没有说明),请使用assign()代替。 - Jeff
1
更新了,谢谢你让我知道,我没有意识到他们已经弃用了那个。 - Kingpin2k
合并对我来说仍然有效(2.5),但是分配需要n个对象进行合并,而合并只需要2个。 - Jeff

12

有的,就是:Ember.copy

var clonedObj = Ember.copy(originalObj, true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接