ES6函数简写及思考

初闻
一次,一个同事在群里问,有谁知道这个函数该如何用ES6的方式简写:
1 | function fn(n){ |
我当时也没动脑子,直接按潜意识改了一下,发出去了:
1 | fn=(n)=>{ |
果然,发code的那家伙神秘一笑,说你再继续简化一下试试。我后背一凉,赶紧又看了看,改成这个样子又抛出去了:
1 | fn=(n)=>(m)=>{ |
我自认为这种总该差不多了吧,结果又被生生打脸。题主笑而不语,然后我恍然大悟,看来之前真是自以为会用,根本没有认真思考过,其实还可以进一步简化:
1 | fn=(n)=>(m)=> m+n |
最后题主说,把括弧也去了吧:
1 | fn = n => m => m + n |
看着这段code,我沉默了……原来code可以如此简洁、优美、易懂。
偶遇
上面的故事发生没多久以后,我在看一个帖子时,发现如下code:
1 | var arr = [ |
然后我笑了,在评论区默默地留下了compares函数的简版:
1 | compare = p => (m, n) => m[p] - n[p] |
思考
Coding这么多年,其实大部分时间是比较麻木的,不走脑子的reading、copy以及coding,糊弄完了一个又一个项目。随着时光的飞逝,真正有意义的东西很少能留下来,所谓很少,其实还是有的,要不真该转行了,就比如这个ES6简写的过程,就是非常有趣并且优美的。但是这个过程很偶然,首先,你得初步了解过这个技术,然后,在一个被动的机会下,你静下心来,认真的体会技术带来的愉悦感,并真正的掌握这项技能。这似乎需要一个积累的过程,大量阅读以后再反复推敲,然后在这个过程中,自我成长,体会技术的真谛,并且使自己快乐!