马黑黑 发表于 2024-1-7 00:01

箭头函数可以简化代码

很喜欢ES6的箭头函数,它可以让代码更简洁。下面,我们先看看传统函数写法,如何实现一个柯里化函数,然后再用箭头函数写。
预设是这样:写一个闭包函数,用来检测字符串,具有通用性。我们先看传统函数写法:


var curryCheck = function (reg) {
    return function (str) {
      return reg.test(str);
    };
};


这里,是一个特殊的柯里化函数写法。所谓柯里化,指函数只带一个参数,就是函数参数单一化。外层函数参数 reg ,是一个待传入的正则,里层函数参数 str ,是待检测的字符串。函数嵌套就是闭包,柯里化函数基本就是这么写。

如何使用上述函数?比方说,我们要检测字符串是不是数字,可以这样:

var checkNumber = curryCheck(/^\d+$/);
console.log(checkNumber('123')); // true
console.log(checkNumber('abc')); // false

下来看看箭头函数,一行就可以完成柯里化的闭包函数:

const curryCheck = (reg) => (str) => reg.test(str);

这个函数等同于前面的闭包函数,调用方法也一样。

箭头函数就是可以这么简洁。还可以更简洁:

const curryCheck = reg => str => reg.test(str);

=> 之后,如果 return 某个指定的东东,花括号 {} 可以不要;函数如果只带一个参数,小括号 () 可以不要。

虽然简洁,不过可读性就差一些,需要非常熟悉箭头函数才能轻松读懂。

红影 发表于 2024-1-7 00:40

黑黑辛苦,写教程到这么晚呢。粗略看了一下,明天再来认真学习{:4_199:}

樵歌 发表于 2024-1-7 07:52

不断创新,原来大科学在废寝忘食的研究呢。令人敬佩不已{:4_176:}

起个网名好难 发表于 2024-1-7 08:22

学习了。

马黑黑 发表于 2024-1-7 11:31

红影 发表于 2024-1-7 00:40
黑黑辛苦,写教程到这么晚呢。粗略看了一下,明天再来认真学习

这个恐怕不好理解{:4_170:}

马黑黑 发表于 2024-1-7 11:31

起个网名好难 发表于 2024-1-7 08:22
学习了。

先生谦虚了

马黑黑 发表于 2024-1-7 11:32

樵歌 发表于 2024-1-7 07:52
不断创新,原来大科学在废寝忘食的研究呢。令人敬佩不已

一直使用箭头函数的

起个网名好难 发表于 2024-1-7 12:09

马黑黑 发表于 2024-1-7 11:31
先生谦虚了

真不是谦虚, ES6的内容基本都是要学习的新东西。

马黑黑 发表于 2024-1-7 12:51

起个网名好难 发表于 2024-1-7 12:09
真不是谦虚, ES6的内容基本都是要学习的新东西。

ES6出来好久了

红影 发表于 2024-1-7 13:12

马黑黑 发表于 2024-1-7 11:31
这个恐怕不好理解

这个名称也怪,居然叫箭头函数,就是因为=>的存在么{:4_173:}

起个网名好难 发表于 2024-1-7 13:27

马黑黑 发表于 2024-1-7 12:51
ES6出来好久了

退休也好久了{:5_102:}

马黑黑 发表于 2024-1-7 14:07

起个网名好难 发表于 2024-1-7 13:27
退休也好久了

之前的工作,就是基于ES5的

马黑黑 发表于 2024-1-7 14:07

红影 发表于 2024-1-7 13:12
这个名称也怪,居然叫箭头函数,就是因为=>的存在么

=> 是箭头阿

起个网名好难 发表于 2024-1-7 14:24

马黑黑 发表于 2024-1-7 14:07
之前的工作,就是基于ES5的

js 退休后没事学着玩的。

马黑黑 发表于 2024-1-7 17:30

起个网名好难 发表于 2024-1-7 14:24
js 退休后没事学着玩的。

哦,业余爱好

起个网名好难 发表于 2024-1-7 18:12

马黑黑 发表于 2024-1-7 17:30
哦,业余爱好

预防老年痴呆{:5_106:}

马黑黑 发表于 2024-1-7 19:00

起个网名好难 发表于 2024-1-7 18:12
预防老年痴呆

挺好挺好。不过感觉得出来,你功底深厚。

红影 发表于 2024-1-7 19:26

马黑黑 发表于 2024-1-7 14:07
=> 是箭头阿

好吧,叫这个也挺形象{:4_173:}

起个网名好难 发表于 2024-1-7 20:28

马黑黑 发表于 2024-1-7 19:00
挺好挺好。不过感觉得出来,你功底深厚。

有点其它语言的底子,模仿起来也就马虎能混了。

马黑黑 发表于 2024-1-7 21:27

起个网名好难 发表于 2024-1-7 20:28
有点其它语言的底子,模仿起来也就马虎能混了。

底子很重要
页: [1] 2
查看完整版本: 箭头函数可以简化代码