javascript中this用法
一、this定义
this是一个对象,在不同情况在指向不同的对象,从字面上来看是,这个(指较近的人或事物),而JS中的this关键字则表示对当前对象的一个引用。当一个函数被调用的时候回产生一个对象(调用方式,调用地点,参数等等)一般来说我们用this指向全局作用域或者局部作用域来代替当前使用的对象。
使用的用途主要有:
1,作为对象方法来调用
2,作为构造函数来调用
二、this指向
1. 在构造函数代码开始执行之前,创建一个空对象;
2. 修改this的指向,把this指向创建出来的空对象;
3. 执行函数的代码;
4. 在函数完成之后,返回this---即创建出来的对象
对象调用
this对象调用比较简单,前面调用了哪个对象,this就指向谁
var person ={
name:'十九'
age:‘22’
a:function(){
console.log(this)
console.log(this.nmae+‘:’+this.age)
}
}
person.a();
//this 指向的就是当前对象person
直接调用的函数
直接调用函数的时候this指向的是全局window函数
function a(){
cnsole.log(this);
}
a();
//this 指向全局作用域
通过new方式调用的函数
new方法调用的函数 this永远指向新创建的对象
function person(name,age){
this.name = name ;
this.age = age ;
console.log (this);
var shijiu = new person (‘十九’,22);
//this指向的就是新穿件的new函数
}
箭头函数中的this
箭头函数中的this要注意的没有单独的this值,箭头函数中的this与定义函数的上下文相同。
const person = {
a:() => {
console.log(this);
}
}
//对象调用箭头函数,
person.a();//this指向的是window