箭头函数的利弊,箭头函数和一般函数的区别

首页 > 教育 > 作者:YD1662024-05-19 21:35:17

参考:https://zhuanlan.zhihu.com/p/26540168

箭头函数的利弊,箭头函数和一般函数的区别(1)

1. 定义对象方法

JS 中对象方法的定义方式是在对象上定义一个指向函数的属性,当方法被调用的时候,方法内的 this 就会指向方法所属的对象。

1.1 定义字面量方法

错误示范:

箭头函数的利弊,箭头函数和一般函数的区别(2)

calculator.sum 使用箭头函数来定义,但是调用的时候会抛出 TypeError,因为运行时 this.array 是未定义的,调用 calculator.sum 的时候,执行上下文里面的 this 仍然指向的是 window,原因是箭头函数把函数上下文绑定到了 window 上,this.array 等价于 window.array,显然后者是未定义的。

解决的办法是,使用函数表达式来定义方法,确保 this 是在运行时是由包含它的上下文决定的

箭头函数的利弊,箭头函数和一般函数的区别(3)

这样 calculator.sum 就变成了普通函数,执行时 this 就指向 calculator 对象,自然能得到正确的计算结果。

1.2 定义原型方法

同样的规则适用于原型方法(prototype method)的定义,使用箭头函数会导致运行时的执行上下文错误

箭头函数的利弊,箭头函数和一般函数的区别(4)

首页 1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.