小编典典

获取范围内的所有变量

javascript

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


阅读 268

收藏
2020-04-25

共1个答案

小编典典

否。“范围内”变量由“作用域链”确定,该变量无法通过编程方式访问。

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

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

事件函数作用 域中 的变量取决于定义事件函数的位置,而不是它们的调用方式。 但是 ,您可以this按照KennyTM指出(for(varpropNamein____))的方式做一些事情,从而找到有关通过函数和参数可用于函数的有用信息,因为这将告诉您提供给您的各种对象(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文件。并击败他们以获得适当的文档。:-)

2020-04-25