我在一本书中找到了这个代码:
function foo() { console.log( this.a ); } var a = 2; var o = { a: 3, foo: foo }; var p = { a: 4 }; o.foo(); // 3 (p.foo = o.foo)(); // 2
最后一行是什么意思?
最后一行是做一个赋值然后调用该函数.
分配首先发生
(p.foo = o.foo)
然后调用该函数
(p.foo = o.foo)();
在第二次调用foo时,它被调用到p或o的范围之外,所以它与调用基本相同:
foo();