当前位置: 首页 > 面试题库 >

获取范围内的所有变量

慕容成文
2023-03-14
问题内容

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


问题答案:

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

有关详细信息(很多),请查看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文件。并击败他们以获得适当的文档。:-)



 类似资料:
  • 问题内容: 请考虑以下代码段: 哪里是我追求的是将包含字典,并且,除其他事项外。 我希望基本上能够引用字符串中当前作用域内的所有变量。因此,预期输出为: 我可以通过传递给实现。这是否总是正确的,或者在某些极端情况下此表达式将无法正确处理? 重写以澄清问题。 问题答案: 在执行操作时合并两个字典的最佳方法是(将本地变量覆盖全局变量)。 缺少将全局变量和本地变量合并的方法是(a)内置函数(我想这是故意

  • 在包含所有数据的生产性系统上。 是否有一个(最好是cql)查询可以与给定的列族或de一起平稳运行,我们必须更改设计?

  • 我有来自Microsoft Azure数据中心(http://www.microsoft.com/en-us/download/confirmation.aspx?id=41653)的900个IP地址范围,我想知道IP地址是否来自其中一个地址。我已经把它转换成一个列表,可以存储在文本文件中。 所以:循环遍历每个地址并使用ip2long()如这里的第3点是否成本更高(https://mebsd.co

  • 问题内容: 我想知道如何在给定父范围的情况下获取所有子范围的列表。我可以从该范围的属性中找到$ childHead,$ childTail,$ nextSibling和$$ prevSibling。 我现在使用的方法是从父级获取childHead,然后使用nextSibling获取下一个孩子,直到nextSibling为空。 有没有更好的方法?鉴于我想在所有子项上调用方法[getModel],是否

  • 问题内容: 假设我有一张Java地图,看起来像这样: 如果键按排序顺序(使用树图或链接哈希图)。现在,如果我尝试获取> = 39和<41的值。那么我应该获取字符串“ 39至41”。如何有效地执行此操作? 问题答案: 看起来您想要的不止一个; 你想要一个!具体来说,您可以使用该操作。 这是一个例子: 需要注意的是也有,,和也,而不是操作以及它返回而不只是。

  • 问题内容: 我最近遇到了一项任务,必须在日期范围内获得所有星期五。我写了一小段代码,很惊讶地看到一些奇怪的行为。 下面是我的代码: 现在,当我运行代码时,我注意到缺少2011年的星期五。经过一些调试和在线浏览后,我发现这是特定于区域设置的,我必须使用它来修复它。 因此,在上面的代码中未注释相关行。 据我了解,一年的第一周应该从一年的整个星期开始。 例如,2010年1月1日是星期五。但它不会显示在结