摘自“JavaScript:The Definitive Guide,4th Edition”的第7.1节:
请注意,这些参数变量仅在执行函数时定义;一旦函数返回,它们就不会持久存在。
这是真的吗?这是否意味着如果我打算在嵌套函数中使用它们,我必须将一些参数保存到局部变量?
答案 0 :(得分:2)
您可以像关键任何其他局部变量一样关闭参数:
function test(v1) {
return function() {
alert(v1);
}
}
var f = test("hello");
f();
这只是因为返回的函数关闭了词法范围中的变量。在正常情况下,是的,参数是函数的局部参数,并且在函数返回后不会持久存在。