2013-11-28 106 views
1

我有一種感覺,我知道這個問題的答案,但無論如何有通過控制檯查看當前值inside訪問關閉變量

var test = (function() { 
    var inside = 0; 
    return function() { 
    inside++; 
    console.log(inside); 
    return inside; 
    } 
})(); 
+0

呃,是不是工作得很好,變量是否在範圍內? – adeneo

+0

或者你的意思是在IIFE之外,是不是***,這是不可能的。 – adeneo

+0

沒有執行它,在IIFE之外。 – KingKongFrog

回答

0

只要打電話test()console.log會打印出值。

你的閉包是自引用的,但你的內部方法剛剛返回,所以它在你的例子中永遠不會被調用。

你應該使用:

var test = (function() { 
    var inside = 0; 
    return function() { 
    inside++; 
    console.log(inside); 
    return inside; 
    } 
})(); 

test();//Will print 1 

所以它會創建關閉和你的return聲明將使內部函數的變量test。所以你的test成爲內在的功能。然後你需要調用它。

+0

@downvoter關心評論?? –

+1

我爲你效勞 –

+0

@BelowtheRadar謝謝你。欣賞。 –