Что эквивалентно jQuery $.extend() в Ember.js ?

#javascript #jquery #ember.js #clone

#javascript #jquery #ember.js #клонировать

Вопрос:

Раньше я клонировал переменную в jquery следующим образом:

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

Есть ли какой-либо метод в Ember.js что эквивалентно этому?

Ответ №1:

Это похоже на мой наименее любимый именованный метод в jquery. Каждый раз, когда я хочу объединить два объекта, мне требуется несколько секунд, чтобы придумать, как это называется. Вы также можете использовать assign в Ember .

 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 .

Комментарии:

1. Ember.merge() кажется устаревшим (хотя в документах об этом не сказано), вместо этого используйте assign()

2. Обновлено, спасибо, что сообщили мне, я не знал, что они устарели.

3. слияние все еще работает для меня (2.5), но для слияния присваивается n объектов, где слияние занимает всего 2.

Ответ №2:

Да, есть: Ember.copy

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