从高阶函数定义 es6 class 中的方法

Define a method in es6 class from a higher order function

我目前正在将一些 es5 javascript 代码转换为 es6,将旧方法声明转换为 class 语法。

Toto.prototype.titi = function() {}
// => 
class Toto {
    titi(){}
}

问题是,一些函数是从高阶函数中获得的。

我应该如何转换这样的东西?

Toto.protype.titi = myFunctionFactory(function() {})

使用特殊的新 ES6 语法,无法更改它。继续做你正在做的事情。

查看 at the spec 表明在 class 中声明的方法必须是 属性 名称后跟一个左括号、可变数量的参数、一个右括号、一个左括号大括号,一个函数体,然后是一个右大括号。没有从表达式赋值的选项。

Syntax

MethodDefinition[Yield] :

PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }