Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 参数寿命_Javascript_Parameters_Closures_Lifetime - Fatal编程技术网

Javascript 参数寿命

Javascript 参数寿命,javascript,parameters,closures,lifetime,Javascript,Parameters,Closures,Lifetime,摘自“JavaScript:第四版最终指南”第7.1节: 请注意,这些参数变量仅在函数执行时定义;一旦函数返回,它们就不会持续存在 这是真的吗?这是否意味着如果要从嵌套函数中使用某些参数,必须将其保存到局部变量中?您可以像关闭任何其他局部变量一样关闭参数,如下所示: function test(v1) { return function() { alert(v1); } } var f = test("hello"); f(); 这只是因为返回的函数关闭了其词

摘自“JavaScript:第四版最终指南”第7.1节:

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


这是真的吗?这是否意味着如果要从嵌套函数中使用某些参数,必须将其保存到局部变量中?

您可以像关闭任何其他局部变量一样关闭参数,如下所示:

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

var f = test("hello");
f();
这只是因为返回的函数关闭了其词法范围内的变量。在正常情况下,是的,参数确实是函数的局部参数,并且在函数返回后不会持久化