집 > Q&A > 본문
function foo() { console.log(this.a); } function doFoo(fn) { fn(); } var obj = { a: 2, foo: foo }; var a = "oops,global"; doFoo(obj.foo); //oops,global 为什么会输出全局对象呢?obj怎么就丢失了他的绑定呢?
欧阳克2016-11-16 14:59:17
你最后执行的还不是:
function foo() { console.log(this.a); }
这样才是2:
obj.foo();//2
三叔2016-11-16 14:58:37
doFoo(obj.foo.bind(obj));//2