- 函数直接调用,this指向window
- 函数方法调用,this指向调用者
大厂面试题
var name = 222
var a = {
name: 111,
say: function () {
console.log(this.name)
}
}
var fun = a.say
fun()
a.say()
var b = {
name: 333,
say: function (fun) {
fun()
}
}
b.say(a.say)
b.say = a.say
b.say()
分析
fun() | 直接调用,fun.call(window) | 222 |
a.say() | 函数调用,a.say.call(a) | 111 |
b.say(a.say) | 直接调用,fun.call(window) | 222 |
b.say() | 函数调用,b.say.call(b) | 333 |