Я пытаюсь клонировать объект с закрытием. Пробовал angular.copy()
Клонировать объект с закрытием
function Foo() {
var data;
this.x = function(val) {
if (val) {
data = val;
}
return data;
}
}
var a = new Foo();
var b = angular.copy(a);
b.x(); // undefined
a.x(5); // set x
b.x(); // 5. expected undefined
, что ваша проблема? a.x() не определено, так что также b.x(). Затем вы определяете a.x(), а так как b - динамическая копия, также установлено значение 5 – ted
Все, что 'angular.copy()' будет делать, это скопировать ссылки. Он не может создать совершенно новое закрытие для версии этой функции, в которой существует эта функция. – Pointy
Вы копируете функцию в 'a' в' b'. Это одна и та же функция, поэтому ссылки на одни и те же данные. Что случилось с 'var a = new Foo(), b = new Foo()'? Я не уверен, о чем вы просите. – 1983