#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);