gpt4 book ai didi

javascript - 如何检索阴影全局变量的值?

转载 作者:数据小太阳 更新时间:2023-10-29 05:19:59 24 4
gpt4 key购买 nike

例子:

var test = 'global value';

(function() {
var test = 'local value';

// how to get the 'global value' string
})();

鉴于主机环境未知的情况,这意味着我们不能假设可以通过 window 名称访问全局对象。此外,该函数不允许接收任何参数!

最佳答案

修复

var test = 'global value';

(function() {
var test2 = 'local value';

console.log(test);
})();

真正的解决方案是修复你的代码,这样你就不会隐藏你关心的全局变量。

评估工作

您始终可以使用全局评估,它是最可靠的。

Example

var test = 'global value';

function runEval(str) {
return eval(str);
}

(function() {
var test = 'local value';

console.log(runEval("test"));
})();

如果您不喜欢定义一个全局 eval,您可以使用 Function 间接地完成它

Live Example

var test = 'global value';

(function() {
var test = 'local value';

console.log(new Function ("return test;") () );
})();

杂项黑客

以下在非严格模式下工作

(function () {
var test = "shadowed";

console.log(this !== undefined && this.test);
})();

而且这个 hack 在损坏的实现中有效

(function() {
var test = 'local value';

try { delete test; } catch (e) { }

console.log(test);
})();

关于javascript - 如何检索阴影全局变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8250858/

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