gpt4 book ai didi

javascript - 在给定范围内定义局部变量

转载 作者:行者123 更新时间:2023-11-30 18:39:36 24 4
gpt4 key购买 nike

如何在给定范围内定义局部变量?

var f = function() {
// (1) var localVariable = 'some value';
alert(localVariable);
}

var defineLocalVariable = function(fnTarget) {
// (2) fnTarget['localVariable'] = 'blah...';

/* (3)
with (fnTarget) {
var localVariable = 'blah...'
} */
}

defineLocalVariable(f);
f();

看例子。如果取消注释 (1) 代码将警告 'f' 函数 'some value' 的局部变量值。如果我想在运行时以编程方式定义这个局部变量,可行吗?您能否建议实现“defineLocalVariable”函数来定义“f”中的局部变量,例如 (2) 或 (3) 之类的解决方案。

谢谢。

最佳答案

局部变量是私有(private)的。它们的概念是它们是不可访问的。

您可以做的是将其作为参数传递;这样,您就可以将其作为局部变量访问。不过,您应该更新 f 的签名。

var f = function(localVariable) {
alert(localVariable);
}

var defineLocalVariable = function(fnTarget) {
fnTarget(123);
}

defineLocalVariable(f);

但是你不能不调用就设置它们以供将来使用(看起来你想要那样)。

不过,您可以创建另一个可以保存的函数,它传递一个特定的参数:

var f = function(localVariable) {
alert(localVariable);
}

var defineLocalVariable = function(fnTarget) {
return function() {
fnTarget(123);
}
}

var func = defineLocalVariable(f);
func();

但同样,它不会直接修改原始函数的作用域。

关于javascript - 在给定范围内定义局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com