js this指向问题
在函数中直接使用
function get(content){
console.log(content)
}
get('您好')//可以看作下列语句的语法糖
get.call(window,'您好')
函数作为对象的方法被调用(谁调用 就指向谁)
var person = {
name:'张三',
run:function(time){
console.log(`${this.name}在跑步 最多${time}min就不行了`)
}
}
person.run(30)//可以看作下列语句的语法糖
person.run.call(person,30)
例题
var name=222
var a ={
name:111,
say:function(){
console.log(this.name)
}
}
var fun = a.say
fun() //fun,call(window) 222
a.say()//a.say.call(a) 111
var b={
name:333,
say:function(fun){
fun()
}
}
b.say(a.say)//传入之后等价于 fun()=a.say 等价于第一种 222
b.say = a.say
b.say()//b调用 等于console.log(this.name)复制到b的say方法中 即333