小编典典

获取范围内的所有变量

all

有没有办法获取当前在 javascript 范围内的所有变量?


阅读 91

收藏
2022-06-16

共1个答案

小编典典

否。“范围内”变量由“范围链”确定,不能以编程方式访问。

有关详细信息(很多),请查看 ECMAScript (JavaScript) 规范。这是官方页面的链接,您可以在其中下载规范规范(PDF),是官方可链接 HTML 版本的链接。

根据您对 Camsoft 的评论进行更新

事件函数范围内 的变量取决于您定义事件函数的位置,而不是它们如何调用它。 但是 ,您可以通过this按照 KennyTM 指出的for (var propName in ____)(this不确定他们给你什么参数,你可以通过arguments为每个函数隐式定义的变量找到)。

因此,除了由于您定义函数的位置而在范围内的任何内容之外,您还可以通过以下方式找出其他可用的内容:

var n, arg, name;
alert("typeof this = " + typeof this);
for (name in this) {
    alert("this[" + name + "]=" + this[name]);
}
for (n = 0; n < arguments.length; ++n) {
    arg = arguments[n];
    alert("typeof arguments[" + n + "] = " + typeof arg);
    for (name in arg) {
        alert("arguments[" + n + "][" + name + "]=" + arg[name]);
    }
}

(您可以扩展它以获得更多有用的信息。)

不过,我可能会使用诸如 Chrome 的开发工具(即使您通常不使用 Chrome
进行开发)或Firebug(即使您通常不使用 Firefox 进行开发)或 Opera 上的
Dragonfly之类的调试器来代替它,或 IE 上的“F12 开发人员工具”。并阅读他们提供给您的任何 JavaScript
文件。并击败他们以获得适当的文档。:-)

2022-06-16