gpt4 book ai didi

javascript - 在范围内定位变量?

转载 作者:行者123 更新时间:2023-11-29 15:49:04 27 4
gpt4 key购买 nike

有没有办法定位范围内的所有变量?例如

var localScope = function() {
var var1 = "something";
var var2 = "else...";

console.log(LOCAL_SCOPE);
};

其中 LOCAL_SCOPE 返回一个对象,如:

{
var1: "something",
var2: "else..."
}

我知道可以通过制作本地对象来做到这一点。但我想找到一种方法来定位所有变量,而无需知道它们是否存在。

最佳答案

没有可靠的方法来获取所有 局部变量。最接近的方法是获取函数的源代码。

如果您不知道对当前函数的引用(例如名称),则必须使用已弃用的(ECMAScript 5 中禁止使用的)argument.callee

当您获得对函数的引用时,您必须通过非标准的 toSource() 方法或 .toString() 获取源的字符串

获取字符串后,您必须获取所有变量名,例如,通过使用RegExp。将此方法与遍历 window 相结合,您可以获得在全局范围内定义的函数的所有局部变量。然后,必须使用 eval (!!!) 来获取对局部变量的引用。


简而言之,您不应该尝试寻找一种定位所有局部变量的方法,因为没有可靠的方法可以实现这一点。

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

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