构造函数: new Vue()
this指向的是 实例化的对象
function Animal(name,age) {
this.name = name
this.age = age
console.log(this);
}
var a = new Animal('小猫',10)
console.log(a);
全局指向的是window
函数中
谁最后调用指向谁
function fn1() {
console.log(this);
}
// fn1()
let obj = {
a:1,
fn: fn1
}
obj.fn() // this指向obj
let a = obj.fn
a() // 指向的是window
箭头函数不会改变this指向
let arr = [1,2,3,]
arr.forEach(()=>{
console.log(this);
})
常用的方法
methods: {
getData(){
et vm = this
}
}
强制改变 this指向
- call
- bind 改变 this指向 后 需要调用函数
- apply
function fn1(a,b) {
console.log(this,a,b);
}
// fn1() // window
let obj = {
name: '2104',
age: 9
}
fn1.bind(obj)(1,2)
fn1.call(obj,3,4)
fn1.apply(obj,[5,6])