js的this指向问题

本文详细解析了箭头函数中this的指向规则,包括在不同调用方式(全局、函数作用域、new、bind)下的行为,以及在<script>标签和Node.js模块中的指向。总结指出,this的指向取决于函数的调用者。
摘要由CSDN通过智能技术生成

一、箭头函数中

(1)箭头函数的this永远指向它父级对象的this。

(2)箭头函数this的指向不会发生改变。

二、被直接调用

(1)全局作用域:this永远指向window

(2)函数作用域

1、如果函数直接被调用  this指向window  函数名()       

2、被对象的对象.属性()调用  函数中的this指向这个对象

三、使用new关键字调用函数时

(1) 当使用 new 关键字调用函数时,函数中的 this 一定是 JS 创建的新对象。

(2)new的优先级高于bind

四、使用bind函数时

(1)多次 bind 时只认第一次 bind 的值

(2)bind函数中的this不会被修改

注:将参数一一进行传递,在被函数调用时不会立马执行函数,而是返回一个新函数,新函数中的this指向改变,不影响原来的函数的this指向

五、不在函数里

(1)在 <script /> 标签里,this 指向 Window。

(2)在 Node.js 的模块文件里,this 指向 Module 的默认导出对象,也就是 module.exports

六、总结

谁调用this就指向谁!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值