记一个简化函数

2019-07-05  本文已影响0人  Thomas赵骐

箭头函数允许你省略参数两边的括号、函数体的花括号、甚至return关键词,这对编写更简短的代码非常有帮助。这让我想起大学计算机老师给学生留过的有趣作业:看谁能使用 C 语言编写出最短的函数来计算字符串的长度,这对学习和探索新语言特性是个不错的法子。但是,在实际的软件工程中,代码写完之后会被很多工程师阅读,真正的write once, read many times,在代码可读性方面,最短的代码可能并不总是最好的。一定程度上,压缩了太多逻辑的简短代码,阅读起来就没有那么直观,比如下面的例子

const multiply = (a, b) => b === undefined ? b => a * b : a * b;
const double = multiply(2);
double(3);      // => 6
multiply(2, 3); // => 6

multiply 函数会返回两个数字的乘积或者返回一个可以继续调用的固定了一个参数的函数。代码看起来很简短,但大多数人第一眼看上去可能无法立即搞清楚它干了什么,怎么让这段代码可读性更高呢?有很多办法,可以在箭头函数中加上括号、条件判断、返回语句,或者使用普通的函数

function multiply(a, b) {
    if (b === undefined) {
        return function (b) {
            return a * b;
        }
    }
    return a * b;
}

const double = multiply(2);
double(3); // => 6
multiply(2, 3); // => 6

为了让代码可读性更高,在简短和啰嗦之间把握好平衡是非常有必要的。

上一篇 下一篇

猜你喜欢

热点阅读