在PHP中有一个函数,你可以在其中获得当前定义的用户定义函数的列表,JS中有类似的东西吗?
我正在尝试在Firefox 3中看到一个功能列表,并启用了Firebug。
= /到目前为止,所有答案都没有开箱即用
答案 0 :(得分:3)
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]);
}
}
}
答案 1 :(得分:1)
没有跨浏览器方法。在Internet Explorer中,已定义的变量和函数成为window
对象的成员,但不可枚举。您可以使用funcName in window
检查它们的存在,但不能使用for...in
语句枚举它们。
定义为窗口对象的属性的变量是可枚举的:
function someFunc () {} // is not enumerable
window.someOtherFunc = function () {} // is enumerable
编辑 JScript的实施(惊讶,惊讶)实际上是错误的,如this blog post by Eric Lippert中所述。
但我认为你不想用window.
为所有变量添加前缀,是吗?有关在某些浏览器中有效的方法,请参阅Josh Stodola's answer。
答案 2 :(得分:1)
可能过于简单,但如果启用了Firebug,请将window
记录到控制台。单击它将枚举所有window
个成员。如果您需要快速,可视的列表,这将对您有所帮助,但如果您对所有window
成员采取行动,则需要使用评论中发布的其他方法之一。
像for(var i in window)
之类的东西会让你走上正确的轨道。