JavaScript中this指向

本文详细介绍了JavaScript中this的关键指向规则,包括全局作用域、函数调用、箭头函数、call/apply/bind方法以及在class中的应用。在全局作用域下,this指向window;在函数中,普通函数调用时this指向window,而作为对象方法时指向调用该方法的对象;箭头函数的this继承自父级作用域;call、apply、bind可以强制改变this指向。在class中,无论哪种构造方式,this都指向新创建的类实例。

JavaScript中this指向

1、在全局作用域下this指向window

2、函数中:

情况一、普通函数

foo();   this指向window

obj.foo(); this指向obj

new的方式(构造函数时,new一个对象) this指向new出来的实例

 

情况二、箭头函数

this指向包裹箭头函数的第一个普通函数

 

情况三、call、apply、bind

this被强制绑定到指定的对象上

 

 

3、在class中,this指向新创建的类实例:

一种写法是构造函数创建

function Boo(a) {

this.a = a;

this.say = function() {

console.log(`say ${this.a}`);

}

}

 const boo = new Boo(‘hello’); 

另外一种是es6写法,利用class关键字

class Boo {

constructor(a) {

this.a = a;

}

say(){

console.log(`I say ${this.a}`);

}

}

const boo = new Boo(‘hello’);

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值