2016-10-20 19 views
1

私の 'main'関数によって返される関数のコードに到達することに問題があります。誰も私がこれを解決するのを助けることができる?JavaScriptで関数を返すことができません

function createBook() { 
 
    let cnt = 1; 
 

 

 
return function(selector,tiTle,auThor,rate){ 
 
     alert("In"); 
 

 
    } 
 
}

私は返す関数が渡されたコードをデバッグ。

+0

:あなたは別の()createBook()によって返される関数を実行する必要があります。 :) – XtraSimplicity

答えて

3

を呼び出し内部の関数を呼び出します。

function createBook() { 
 
    let cnt = 1; 
 
    return function (selector, tiTle, auThor, rate) { 
 
     alert("In"); 
 
    } 
 
} 
 

 
// you need a call of the returned function to call the function inside 
 
createBook()();

1

だけcreateBook()()

function createBook() { 
 
    let cnt = 1; 
 
    return function(selector,tiTle,auThor,rate){ 
 
     alert("In"); 
 
    } 
 
} 
 

 
createBook()();

createBook()としてそれを呼び出すにはfunction参照を返し、あなたは余分な括弧()で再度起動する必要があります。

1

あなたに返した関数の呼び出しを必要と返される関数

function createBook() { 
 
    let cnt = 1; 
 

 
    return function(selector, tiTle, auThor, rate) { 
 
    alert("In"); 
 

 
    } 
 
} 
 

 
createBook()()

代わり

function createBook() { 
 
    let cnt = 1; 
 

 
    return function(selector, tiTle, auThor, rate) { 
 
    alert("In"); 
 

 
    } 
 
} 
 

 
var book = createBook(); 
 
// call anonymous function returned from `createBook()` 
 
book();

2

あなただけの未実行の機能を返す、createBook()を呼んでいます。あなたは好奇心旺盛であれば、コンセプトのこのタイプは「カリー化」と呼ばれる

createBook()(); 
関連する問題