2014-05-23 94 views
0

我想創建一個封閉功能的JavaScript

function init(x){ 
    var y = 10; 
    return function display(a){ 
     return y + a + x; 
    } 
    display(5); 
} 
init(4); 

以上閉合應該返回19.但是返回類型,它返回的功能。

回答

2

返回在函數前面,而不是在調用前面。

function init(x){ 
    var y = 10; 
    function display(a){ 
     return y + a + x; 
    } 
    return display(5); 
} 
init(4); 
0

您必須移動「返回」。 return關鍵字將終止函數的代碼執行並返回傳遞給返回值的值(在你的情況下是一個函數)。如果你的結果必須是19,可以考慮使用以下代碼:

function init(x) { 
    var y = 10; 

    function display(a) { 
     return y + a + x; 
    } 

    return display(5); 
} 

init(4); 
0

在您的初始化函數的最後一行是unreachable,一旦它的return語句之後。如果你想返回一個原始值,你必須返回顯示函數的結果。

function init(x){ 
    var y = 10; 
    function display(a){ 
     return y + a + x; 
    } 
    return display(5); 
} 
init(4);