this的指向问题
this的问题大家其实或多或少都有点了解,但是今天我遇到了一个问题,确实需要对this的深入理解。
请看以下代码
var fn =1
var obj ={
fn:function(){
console.log(fn)
}
fn2:function(){
console.log(this.fn1)
}
}
obj.fn()//输出1
obj.fn1()//输出函数
obj.fn()输出的其实是1,我的理解是 :任何函数的外部作用域其实是window,如果我们要想输出对象里的属性(包括函数、对象),那么我们就要在变量之前加个this(或者函数名obj、obj1…),因为在函数定义的时候,this就已经存在了,obj调用的fn1,那么this就指向obj,所以this.fn1 === obj.fn1