我知道在JavaScript中对象是通过引用复制/传递的。但是函数呢?
我在尝试这段代码时遇到了一些困惑,以下是这段代码片段:
我在尝试这段代码时遇到了一些困惑,以下是这段代码片段:
x = function() { console.log('hey 1'); }
y = x;
x = function() { console.log('hey 2'); }
y; // Prints function() { console.log('hey 1'); }
如果像对象一样的函数是通过复制/引用传递的,为什么y没有更新以打印“hey 2”?
如果这种行为是因为“x”被赋予了全新的函数,那么在x更改时有没有办法将变量“y”指向新分配的函数?
{x:1}
和{x:2}
相同,而不是与function(){console.log('hey 1');}
和function(){ console.log('hey 2'); }
不同。您目前的措辞让人感觉好像您正在观察对象与函数之间的不同模式,但实际上这是不可能的。 - apsillers.modify()
或.add()
方法,则这是底层数据可以更改以便通过多个变量可见的一种方式。 - Katana314var b = a; a.myprop = 3; console.log(b.myprop);
- Katana314