javascript - 柯里化(Currying)返回 "... is not a function"

标签 javascript

我尝试柯里化(Currying)一个函数,我在类 someClass 中定义该函数,如下所示:

class SomeClass extends AnotherClass {

   _someFunc(arg1) {
        const foo = arg1.map(bar => {
            return function(arg2) {
                bar[arg2];
            }
        });

        return foo;
    }

   yetAnotherMethod() {
      ...
      somenewFunc()
   }

    someMethod()
        ...
        const someNewFunc = this._someFunc(someVar)("abc");
        ....

 }

在同一个类中,我有一个方法someMethod(),我尝试在其中调用我的

当我启动我的应用程序时,我得到

this._someFunc(...) is not a function

这是为什么?

最佳答案

你可以这样做:

const someNewFunc = this._someFunc(someVar)[0]("abc");

SomeFunc 返回一个数组。这将从该数组中取出第一个函数并调用它。 如果你想获取数组中的所有值,可以这样做:

   _someFunc(arg1,arg2) {
    return arg1.map(bar =>bar[arg2]);
  }

const someNewFunc = this._someFunc(someVar,"abc");

或者如果你希望它是一个函数:

_someFunc(arg1) {
 return function(arg2){
    return arg1.map(bar =>bar[arg2]);
 }
}

const someNewFunc = this._someFunc(someVar)("abc");

关于javascript - 柯里化(Currying)返回 "... is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44158997/

相关文章:

javascript - 如何使用 Angular JS 获取提交操作中所有选定的复选框值?

javascript - 单击按钮关闭窗口

javascript - 元素宽度沿一个方向减小

javascript - 哪些 EcmaScript 6 功能可以转换为 ES5 代码?

javascript - 无需哈希或迭代即可检测 URL 更改

javascript - 如果元素存在则返回一个函数

javascript - Highcharts 中的多个 X 轴值

asp.net - 有什么办法可以在 Visual Studio 2008 中从 IntelliSense 将 JavaScript 文件设为 'hide'?

javascript - Ajax post to Asmx 中缺少参数

javascript - Kendo UI 数据源获取函数附加到数组