2017-09-30 5 views
0

を使用して拡張します。Javascriptを私は<a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" rel="nofollow noreferrer">C# extension method</a>のように、簡単な方法で機能を拡張する方法を探してきた生命維持式

私はこの記事Method Chaining in JavaScriptで発見したとウィッヒが正常に動作し、次のステートメントを試してみました。

var FOO = function(){ 
    this.whateverFunc = function(){ 
     console.log("whatever func"); 
    } 
}; 
FOO.prototype.first = function(){ 
    console.log("first func"); 
    return this; 
}; 
FOO.prototype.second = function(){ 
    console.log("second func"); 
    return this; 
}; 

その後、私はそれをチェーンすることができます

var foo = new FOO(); 
foo.first().second(); 
//Output 
//first func 
//second func 

しかし:私のプロジェクトには、以下の "パターン" を持っている:

var FOO = (function(){ 
    var foo{ 
     firstFunc: function(){ 
      //implement 
     }, 
     secondFunc: function(){ 
      //implement 
     }, 
    } 
    return foo; 
}()); 

私が使用していない場合でも、それは動作しません。生命維持。

var FOO = function() { var foo{}; return foo; }; 

このパターンでチェーン機能を使用する方法はありますか?私はこれをどのように達成できますか(これが可能ならば!):

FOO.first().second(); 

ありがとう。

答えて

2

のみ

次のコードでの問題しかし:私のプロジェクトには、以下の "パターン" を持っている:

foo宣言で=が不足しています。

生命維持が矢印機能を使用している場合は起動括弧ではなく、外側の括弧内の、生命維持の最後の部分でなければなりません。

var FOO = (function() { 
 
    var foo = { 
 
    firstFunc: function() { 
 
     //implement 
 
     console.log(1); 
 
     return this 
 
    }, 
 
    secondFunc: function() { 
 
     //implement 
 
     console.log(2); 
 
     return this 
 
    } 
 
    } 
 
    return foo; 
 
})(); 
 

 
FOO.firstFunc().secondFunc()

+0

あなたは正しい、と私は、それが生命維持で可能であるかを知るだけで「これを」返すと、それは、グレートを連鎖させることができませんでした。大いに感謝する; –

関連する問題

 関連する問題