关于this的一个小问题?

2016-11-06 18:32发布

代码如下:

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(); // 4

(p.foo = o.foo)(); 和 p.foo = o.foo; p.foo();这两个foo,执行结果为什么会不同,这两种写法有不一样吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答

前面一种赋值语句会返回foo函数,后面跟括号就是直接调用,并没有作为对象的方法调用。

一周热门 更多>