有时,主要是在课堂上,我需要做一个单行函数。
例如:
class Blah {
getVisibilityAnimValue() { return this.state.isVisible ? 100 : 0 }
}
在ES6中是否有友好的方式?我试图省略周围的曲线并省略返回,但它不起作用。
答案 0 :(得分:1)
没有。这是创建箭头函数的确切原因之一。
答案 1 :(得分:1)
在ES6中是否有友好的方式?
不,没有。我认为您已经知道,为了使用this
来引用调用实例,您不能使用箭头函数(根据如何使用词法this
而不是this
它被称为)。因此,您必须使用传统的ES6方法定义。因此,您需要大括号{}
,而您需要return
。
ES6类语法至少为您节省了ES5方案:
Blah.prototype.getVisibilityAnimValue = function() {...}
我试图省略周围的卷曲并省略退货,但它不起作用。
是的,仍然需要这些。
如果您有很多方法可以像这样工作并使用相同的逻辑,那么您可以将逻辑分解为共享函数。
// define this once and then use it many places
function zVal(val) {
return val ? 0 : 100;
}
getVisibilityAnimValue() { return zVal(this.state.isVisible) }
但是,对于这么简单的事情,这是否可以说是更好的"因为它现在涉及一个额外的函数调用,并且使它更难以看到(一目了然)它的作用。