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怎么就丢失了他的绑定呢?Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你最后执行的还不是:
function foo() { console.log(this.a); }这样才是2:
doFoo(obj.foo.bind(obj));//2