参数的生命周期

时间:2011-07-03 19:29:33

标签: javascript parameters closures lifetime

摘自“JavaScript:The Definitive Guide,4th Edition”的第7.1节:

  

请注意,这些参数变量仅在执行函数时定义;一旦函数返回,它们就不会持久存在。

这是真的吗?这是否意味着如果我打算在嵌套函数中使用它们,我必须将一些参数保存到局部变量?

1 个答案:

答案 0 :(得分:2)

您可以像关键任何其他局部变量一样关闭参数:

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

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

这只是因为返回的函数关闭了词法范围中的变量。在正常情况下,是的,参数是函数的局部参数,并且在函数返回后不会持久存在。