15 回复
柯里化
@waitingsong 估计是忽略了return,才搞混的
说明语法过于简洁,也会影响阅读
个人感觉:ES6的语法糖有些多,造成代码的可读性有些…当然:语法糖很具有两面性。
这种只能说是自己作,就跟当年的 ++i++
一样。
不该简写的地方没必要简写。
其实很简单的:
const times = x => (
f => {
// ...
}
)
const times = x => {
return f => {
// ...
}
}
const times = function(x) {
return function (f) {
// ...
}
}
@atian25 哪里能找到你们1.27北京专场的信息?
@nnliang 啥专场?
@atian25 说得好。这种写法在我看来是用简洁的写法故意制造混乱
哈哈,我之前也作过,当时 Egg 的 Controller 还是这种写法时:
module.exports = function(app) {
class HomeController extends app.Controller {
// ...
};
return HomeController;
};
尝试转换:
// 第一次简化(这样其实是最佳的)
module.exports = app => {
class HomeController extends app.Controller {
// ...
};
return HomeController;
};
// 第二次简化,因为嫌弃 return 麻烦
module.exports = app => class HomeController extends app.Controller {
// ...
};
// 第三次简化,因为觉得第一行太长,改成这样,但这个括号。。。最后还是第一种好
module.exports = app => (
class HomeController extends app.Controller {
// ...
}
);
@atian25 招人呐
@atian25 我也讨厌这种写法,净搞这些花里胡哨的,我反手就是一波举报
@nnliang 北京招聘专场?问狼叔看看
这不符合函数式编程规范, 它依赖了外部变量times ,改成下面这样就更好理解了
const times=x=>f=>{
while(x>0){
f()
x--
}
}
@atian25 其实吧。。。我一直喜欢古老的 function 这种写法。。。箭头函数那种我写的时候还要去思考单行跨行的问题和是否需要return的问题。虽然字少,反而卡壳。
确实太过简洁,也影响阅读,我刚开始接触es6这种写法,也是一脸懵逼