猿问

面试题关于this的指向

var b = '1';

var obj = {

    b:3,

    c:function(){

        console.log(this)

        console.log(this.b)

    },

    d:function(){

        var f = obj.c;

        f();

    }

}

obj.d()

请教一下,this为什么指向了window

ABOUTYOU
浏览 991回答 2
2回答

九州编程

因为obj的外层就是window

繁花不似锦

this就是调用的时候点.前面的那个,谁调用的谁就是this没有点就是window你这个 obj.d() 所以调用的d里面 this是obj,这时候可以this.c()调用c这时候c的this就是obj在d里面 因为对obj.c做了赋值操作 所以调用f前面没有点 所以f里的this是window
随时随地看视频慕课网APP
我要回答