1.this是什么
面向对象语言中 this 表示当前对象的一个引用。
2.this的常见四种情况
1.纯粹的作为函数调用,全局函数中,this指向window
function fn(){
// 函数独立调用,函数内部的this也指向window
console.log(this);
}
fn();
2.作为对象方法的调用:当函数被作为某个对象方法调用时,this就是那个对象
var obj={
a:2,
foo:function(){
var that=this;
// 这里的this指向是obj
console.log(this)
function test(){
// 这里的this指向的是window
console.log(that.a);
}
test();
}
}
obj.foo();
3.作为构造函数调用,this指向新对象
function Dog(dogName, dogAge) {
console.log(this)
this.name = dogName;
this.age = dogAge;
}
// 调用构造函数
var dog1 = new Dog('哈士奇', 3);
var dog2 = new Dog('泰迪', 2);
4.apply call调用:this指向改变后的调用这个函数的对象
let person1={
name:"张三",
age:12,
say(){
console.log(this.name)
}
}
let person2={
name:"李四",
age:23
}
person1.say.call(person2);
未完。。。。。