如何查看javascript中当前定义的函数和变量?

如何查看javascript中当前定义的函数和变量?,javascript,function,scope,Javascript,Function,Scope,PHP中有一个函数,您可以从中获得当前定义的用户定义函数列表,JS中是否有类似的功能 我正在尝试查看Firefox3中启用Firebug的函数列表 =/到目前为止,没有一个答案是现成的没有跨浏览器的方法。在Internet Explorer中,已定义的变量和函数成为窗口对象的成员,但不可枚举。您可以在window中使用funcName检查它们是否存在,但不能在语句中使用for…枚举它们 var funcs = []; for(var prop in window) { if(window

PHP中有一个函数,您可以从中获得当前定义的用户定义函数列表,JS中是否有类似的功能

我正在尝试查看Firefox3中启用Firebug的函数列表


=/到目前为止,没有一个答案是现成的

没有跨浏览器的方法。在Internet Explorer中,已定义的变量和函数成为
窗口
对象的成员,但不可枚举。您可以在window中使用
funcName检查它们是否存在,但不能在
语句中使用
for…枚举它们

var funcs = []; 

for(var prop in window) {
  if(window.hasOwnProperty(prop) && typeof window[prop] === 'function') {
    if(window[prop].toString().indexOf("[native code]") === -1) {
      funcs.push(window[prop]);
    }
  }
}  
定义为窗口对象属性的变量是可枚举的:

function someFunc () {} // is not enumerable
window.someOtherFunc = function () {} // is enumerable
EDITJScript的实现实际上是错误的,如中所述


但我认为您不想在所有变量前面加
窗口。
,是吗?有关在某些浏览器中可用的方法,请参阅。

没有跨浏览器方法。在Internet Explorer中,已定义的变量和函数成为
窗口
对象的成员,但不可枚举。您可以在window
中使用
funcName检查它们是否存在,但不能在
语句中使用
for…枚举它们

定义为窗口对象属性的变量是可枚举的:

function someFunc () {} // is not enumerable
window.someOtherFunc = function () {} // is enumerable
EDITJScript的实现实际上是错误的,如中所述


但我认为您不想在所有变量前面加
窗口。
,是吗?有关在某些浏览器中可用的方法,请参阅。

可能过于简单,但如果启用了Firebug,请将
窗口
记录到控制台。单击它将枚举所有
窗口的成员。如果您需要一个快速、直观的列表,这将对您有所帮助,但如果您对所有
窗口的成员采取行动,则需要使用评论中发布的其他方法之一


类似于
for(窗口中的var i)
的操作将使您走上正确的轨道。

可能过于简单,但如果启用了Firebug,请将
窗口
记录到控制台。单击它将枚举所有
窗口的成员。如果您需要一个快速、直观的列表,这将对您有所帮助,但如果您对所有
窗口的成员采取行动,则需要使用评论中发布的其他方法之一


类似于
for(窗口中的var i)
的东西会让您走上正确的轨道。

在Firefox中运行此命令时,我遇到了一个错误。。“操作不受支持”代码:“9”@codeninja:请在上尝试此SSCCE。在Firefox中,它对我来说绝对有效@Josh:+1表示函数。我在Firefox中运行时出错。。“操作不受支持”代码:“9”@codeninja:请在上尝试此SSCCE。在Firefox中,它对我来说绝对有效@Josh:+1表示函数。我不需要跨浏览器回答。我只需要在firefox中执行此操作。上述方法返回一个error@codeninja:看起来Firefox也不允许函数和变量是可枚举的。@codeninja:Josh的代码在Firefox-SSCCE中对我很好,我不需要跨浏览器的答案。我只需要在firefox中执行此操作。上述方法返回一个error@codeninja:看起来Firefox也不允许函数和变量可枚举。@codeninja:Josh的代码在Firefox-SSCCE中对我很好