我在一本书中找到了这段代码:
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
最后一行是什么意思?
答案 0 :(得分:5)
最后一行是做一个赋值然后调用函数。
首先分配
(p.foo = o.foo)
然后调用函数
(p.foo = o.foo)();
在对foo的第二次调用中,它被调用到p或o的范围之外,所以它与调用基本相同:
foo();