粗谈JavaScript中的箭头函数

print1和print2都是obj对象中的方法,区别在于print1为箭头函数,而print2为普通函数。

引入《深入理解ES6》中的一段有关箭头函数的话:

箭头函数没有 this/super/arguments/new.target 的绑定,这些值是由外围最近一层非箭头函数决定。

普通函数的this是动态的,所以其指向是在运行时确定,在运行时找到拥有当前上下文的对象。

箭头函数的this是静态的,这个箭头函数在哪个作用域声明,那么这个this就会绑定到这个函数的上下文中,也就是所谓的“穿透“箭头函数。

原文地址:https://www.cnblogs.com/maoguy/p/7519549.html