2016-07-13 14 views
0

タイトルは良くないので、名前を見つけるとすぐに編集します。このES6関数の意味や解釈は何ですか

私はReduxを学んできましたが、これは私がこの種の機能を見た最初の場所です。

export default connect(null, actionCreators)(TodoApp) 

私の周り私の頭を取得することはできません、明らかに「ヌル」と「actionCreatorsは、」connect関数に渡されたのparamsですが、どのような「(TodoApp)が」しているのですか?

+1

'(ヌル、actionCreators)を接続' TodoApp'のに渡される匿名関数を返します。 – ftor

+0

素晴らしい、あなたが答えとしてそれを追加するなら私はそれを受け入れるよ – Borjante

答えて

2

Javascriptはファーストクラスの関数をサポートしています。これは通常のデータのように渡すことができます。したがって、connect(null, actionCreators)は、が渡される匿名関数を返します。

単純な理解の例は次のようになります

var obj = { 
 
    name: "Test", 
 
    age: 10 
 
} 
 

 
var f =() => { 
 
    // Do whatever f function should do 
 
    
 
    // Return an anonymous function that takes in an object as parameter 
 
    return (obj) => { 
 
    
 
    // Do whatever we want to to with the object 
 
    console.log(obj.name) 
 
    } 
 
} 
 

 
// These two methods are equivalent 
 
    // 1.- 
 
    f()(obj); 
 

 
    // 2.- 
 
    var f2 = f(); 
 
    f2(obj);

+2

@ Borjanteあなたは何とかあなた自身を何とか説明した:D – ftor

+0

あなたの最初のコメントへのタンクあなたは正しく私のアイデアを得るためにいくつかのテストを行った – Borjante

1
connect(null, actionCreators)(TodoApp); 

と同じくらい良いです。このような何か

var fun = connect(null, actionCreators); 
fun(TodoApp); 

その:あなたが見ることができるように

function connect(val1,val2){ 
 
    console.log(val1,val2); 
 
    return function(val3){ 
 
    console.log(val3); 
 
    } 
 
} 
 

 
var actionCreators = "X"; 
 
var TodoApp = "Some Object"; 
 

 
connect(null, actionCreators)(TodoApp);

connectは二つの入力、

を取ります

匿名メソッドを返します。このメソッドは1つの入力を受け取ります。

関連する問題