关于js this的问题
高洛峰
高洛峰 2016-11-16 14:58:18
0
2
650
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教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
学霸

你最后执行的还不是:

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

这样才是2:

obj.foo();//2


三叔

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan