2017-05-24 3 views
0

私はクラスでこのような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(...)を取得私のcalllしよう

なぜですか?

+1

です配列? –

+1

'this'なしで関数にアクセスしようとしましたか? – Robert

+0

コンテキストが変わるかもしれませんか?また、someFuncは関数の配列を返しますので、呼び出すことはできません。 –

答えて

1

あなたが行うことがあります。

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

SomeFuncは配列を返します。これはその配列から最初の関数を取り出し、それを呼び出します。

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

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

するか、あなたはそれが機能できるようにする場合:あなたは、アレイ内のすべての値を取得したい場合は 、行うことができます `arg1.map` ..ので、` someVar`が

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

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

@Stophface youveがあなたのコードを変更しました...あなたの最新バージョンでこれを使用する必要があります... –

+0

@Stophface 'someVar'に空の配列ではなく値があるかどうかをチェックします。 – Saravana

関連する問題