DamomHd / interview-question

整理各大厂面试题
1 stars 0 forks source link

this指向问题 #6

Open DamomHd opened 4 years ago

DamomHd commented 4 years ago

一道阿里面试题 尝试输出结果

var length = 100 
function f1 (){
    console.log(this.length)
}

var obj = {
    length:10,
    f2:function(f1){
        f1();
        arguments[0]()
    }    
}

obj.f2(f1,1)
DamomHd commented 4 years ago

一道阿里面试题 尝试输出结果

var length = 100 
function f1 (){
    console.log(this.length)
}

var obj = {
    length:10,
    f2:function(f1){
        f1();
        arguments[0]()
    }    
}

obj.f2(f1,1)

执行f1() 无调用者 所以指向window对象,故length为100 执行arguments[0](),arguments本身是个Object,通过其调用函数,则this指向了arguments,故length为2