ES6函数简写及思考

作者: F_wind | 来源:发表于2019-09-26 16:43 被阅读0次
    ES6函数简写及思考.jpeg

    ES6 函数简化及一些思考

    初闻

    一次,一个同事在群里问,有谁知道这个函数该如何用ES6的方式简写:

    function fn(n){
     return function(m){
      return m+n
     }
    }
    

    我当时也没动脑子,直接按潜意识改了一下,发出去了:

    fn=(n)=>{
     return (m)=>{
      return m+n
     }
    }
    

    果然,发code的那家伙神秘一笑,说你再继续简化一下试试。我后背一凉,赶紧又看了看,改成这个样子又抛出去了:

    fn=(n)=>(m)=>{
      return m+n
    }
    

    我自认为这种总该差不多了吧,结果又被生生打脸。题主笑而不语,然后我恍然大悟,看来之前真是自以为会用,根本没有认真思考过,其实还可以进一步简化:

    fn=(n)=>(m)=> m+n
    

    最后题主说,把括弧也去了吧:

    fn = n => m => m + n
    

    看着这段code,我沉默了……原来code可以如此简洁、优美、易懂。

    偶遇

    上面的故事发生没多久以后,我在看一个帖子时,发现如下code:

    var arr = [
                { name:"小明", age:12 },
                { name:"小红", age:11 },
                { name:"小刚", age:15 },
                { name:"小华", age:13 }
    ];
    function compare(p) { //这是比较函数
        return function (m, n) {
            var a = m[p];
            var b = n[p];
            return a - b; //升序
        }
    }
    arr.sort(compares("age"));
    console.log(arr);
    

    然后我笑了,在评论区默默地留下了compares函数的简版:

    compare = p => (m, n) => m[p] - n[p]
    

    思考

    Coding这么多年,其实大部分时间是比较麻木的,不走脑子的reading、copy以及coding,糊弄完了一个又一个项目。随着时光的飞逝,真正有意义的东西很少能留下来,所谓很少,其实还是有的,要不真该转行了,就比如这个ES6简写的过程,就是非常有趣并且优美的。但是这个过程很偶然,首先,你得初步了解过这个技术,然后,在一个被动的机会下,你静下心来,认真的体会技术带来的愉悦感,并真正的掌握这项技能。这似乎需要一个积累的过程,大量阅读以后再反复推敲,然后在这个过程中,自我成长,体会技术的真谛,并且使自己快乐!

    相关文章

      网友评论

        本文标题:ES6函数简写及思考

        本文链接:https://www.haomeiwen.com/subject/melnuctx.html