粗谈JavaScript中的箭头函数
print1和print2都是obj对象中的方法,区别在于print1为箭头函数,而print2为普通函数。
引入《深入理解ES6》中的一段有关箭头函数的话:
箭头函数没有 this/super/arguments/new.target 的绑定,这些值是由外围最近一层非箭头函数决定。
普通函数的this是动态的,所以其指向是在运行时确定,在运行时找到拥有当前上下文的对象。
箭头函数的this是静态的,这个箭头函数在哪个作用域声明,那么这个this就会绑定到这个函数的上下文中,也就是所谓的“穿透“箭头函数。