this谁调用就指向谁
在全局中指向window
function fn1() {
console.log(this)
}
fn1() //window.fn1() 省略window (指向window)
在构造函数中指向当前实例化对象
在箭头函数中 不会改变this的指向
定时器 指向window
改变this指向
bind 可以改变this指向 调用函数后面多加()
var obj = {
a:1
}
function fn1(m,n) {
console.log(this)
}
fn1() //指向window
fn1.bind(obj)() //指向obj
call 可以直接调用函数
var obj = {
a:1
}
function fn1(m,n) {
console.log(m,n)
console.log(this)
}
fn1.call(obj,1,2) //指向obj
apply 可以直接调用函数 参数放数组里
var obj = {
a:1
}
function fn1(m,n) {
console.log(m,n)
console.log(this)
}
fn1.apply(obj,[1,2]) //指向obj
可以在函数最前面定义 let vm=this后面直接使用vm就可以