JS中this的指向和ES6的箭头函数

JS中的this

JS中this的指向一般可以直接归成一条规律

====》 函数中的this

function f1(){ return this; } f1() === window; // true

网上分析较多,因而将其汇总:函数中的this 一般都指向调用这个函数的对象

直接写在document下的都会指向window对象。内联事件函数中的this也是同理

而写在对象中的函数也会遵守(指向调用这个函数的对象)这条规律。

而其中有几个例外:

1. DOM事件监听绑定的函数中的this指向的是触发函数的DOM元素

2.Function.prototype.bind 通过bind方法绑定后, 函数将被永远绑定在其第一个对象上

3.setTimeout & setInterval 中函数里的this指向window

4.构造函数中的this永远指向创建的实例对象(这里的函数 指原型方法,即绑定进proptype的方法 而非static静态方法,静态方法依旧是谁调用指向谁,用变量接收方法并执行,则指向window)

image

ES6的箭头函数

image
箭头函数自身并不绑定this,内部的this会自动指向上下文中与之最邻近的有定义this的对象上
解决了函数嵌套中this的指向不明问题

猜你喜欢

转载自www.cnblogs.com/chujunqiao/p/11624635.html