2011-07-03 19 views
2

摘錄「JavaScript權威手冊,第4版」:壽命的參數從第7.1

注意僅限定,而正在執行的功能,這些參數變量;他們一旦函數返回不會持續。

這是真的嗎?這是否意味着如果我打算在嵌套函數中使用它們,我必須將一些參數保存到局部變量中?

回答

2

您可以關閉在參數就像任何其他的局部變量,像這樣:

function test(v1) { 
    return function() { 
     alert(v1); 
    } 
} 

var f = test("hello"); 
f(); 

這僅僅是因爲返回的功能關閉了在其詞法範圍的變量。在正常情況下,是的,參數對於函數是本地的,並且在函數返回後不會保留。