关于js this的问题
高洛峰
高洛峰 2016-11-16 14:58:18
0
2
651
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怎么就丢失了他的绑定呢?


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
学霸

你最后执行的还不是:

function foo() {
        console.log(this.a);
    }

这样才是2:

obj.foo();//2


三叔

doFoo(obj.foo.bind(obj));//2

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板