Я знаю, что объекты в Javascript копируются/передаются по ссылке. Но как насчет функций?
Я пробовал этот код, когда перешел к чему-то запутанному. Вот фрагмент кода:
x = function() { console.log('hey 1'); }
y = x;
x = function() { console.log('hey 2'); }
y; // Prints function() { console.log('hey 1'); }
Если такие функции, как объекты, копируются/передаются по ссылке, почему y не обновляется для печати «привет 2»?
Если такое поведение связано с тем, что «x» назначается совершенно новой функцией, есть ли способ для переменной «y» использовать новую назначенную функцию при изменении x?
{ x: 1 }
и{ x: 2 }
вместоfunction() { console.log('hey 1'); }
иfunction() { console.log('hey 2'); }
. ваша текущая формулировка звучит так, будто вы наблюдаете разные шаблоны для объектов и функций, что не может быть правдой. - person apsillers   schedule 19.11.2015=
изменяет только переменную, на которую он ссылается (например, фактическую ссылку x), а не базовые данные. Если у типа есть метод.modify()
или.add()
, это один из способов изменения базовых данных, чтобы они были видны через несколько переменных. - person Katana314   schedule 19.11.2015=
используется для изменения свойств объекта, которые, безусловно, могут быть видны по другим ссылкам. например:var b = a; a.myprop = 3; console.log(b.myprop);
- person Katana314   schedule 19.11.2015