CNode

哎呀妈呀,这ES6语法,害我想了大半个钟头!

分享
Bbaofengyv发布于9 年前最后回复9 年前15 回复5995 浏览0 收藏

TIM截图20180118150428.png

来自这里

看到这个直接懵了,这是啥。。。。。

用babel处理了下才算能明白 TIM图片20180118143855.png

查看回复

回复 (15)

W
waitingsong#1·9 年前

柯里化

S
suntopo#2·9 年前
引用 waitingsong柯里化

@waitingsong 估计是忽略了return,才搞混的

L
liangtongzhuo#3·9 年前

说明语法过于简洁,也会影响阅读

Y
Yangk030208#4·9 年前

个人感觉:ES6的语法糖有些多,造成代码的可读性有些.......当然:语法糖很具有两面性。

A
atian25#5·9 年前

这种只能说是自己作,就跟当年的 ++i++ 一样。 不该简写的地方没必要简写。 其实很简单的:

const times = x => (
  f => {
    // ...
  }
)

const times = x => {
  return f => {
    // ...
  }
}

const times = function(x) {
  return function (f) {
    // ...
  }
}
A
alsotang#8·9 年前
引用 atian25这种只能说是自己作,就跟当年的 ++i++ 一样。 不该简写的地方没必要简写。 其实很简单的:

@atian25 说得好。这种写法在我看来是用简洁的写法故意制造混乱

A
atian25#9·9 年前
引用 alsotang@atian25 说得好。这种写法在我看来是用简洁的写法故意制造混乱

@alsotang

哈哈,我之前也作过,当时 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 {
    // ...
  }
);
N
nnliang#10·9 年前
A
a69694510#11·9 年前
引用 atian25这种只能说是自己作,就跟当年的 ++i++ 一样。 不该简写的地方没必要简写。 其实很简单的:

@atian25 我也讨厌这种写法,净搞这些花里胡哨的,我反手就是一波举报

A
atian25#12·9 年前
引用 nnliang@atian25 招人呐

@nnliang 北京招聘专场?问狼叔看看

S
shynome#13·9 年前

这不符合函数式编程规范, 它依赖了外部变量times ,改成下面这样就更好理解了

const times=x=>f=>{
  while(x>0){
    f()
    x--
  }
}
A
alsotang#14·9 年前
引用 atian25@alsotang 哈哈,我之前也作过,当时 Egg 的 Controller 还是这种写法时: 尝试转换:

@atian25 其实吧。。。我一直喜欢古老的 function 这种写法。。。箭头函数那种我写的时候还要去思考单行跨行的问题和是否需要return的问题。虽然字少,反而卡壳。

F
fancylife#15·9 年前

确实太过简洁,也影响阅读,我刚开始接触es6这种写法,也是一脸懵逼

参与回复
登录后即可参与回复。登录