对象方法
调用this所在函数fn的是b,所以this指向b,b.a1='hello a3' ,b没有a2属性,b.a2=undefined
var a1='hello a1'
var a2='hello a2'
var b={
a1:'hello a3',
fn:function(){
console.log(this.a1) // hello a3
console.log(this.a2) // undefined
}
}
b.fn()
换一种情况,var fn1=b.fn只是赋值,fn1()时才发生了调用,调用对象为window,this指向window
var a1='hello a1'
var a2='hello a2'
var b={
a1:'hello a3',
fn:function(){
console.log(this.a1) // hello a1
console.log(this.a2) // hello a2
}
}
var fn1=b.fn
fn1()