[javascript]IE中的所有函数都在哪里?
如果我想在firefox中获取程序中声明的所有函数和变量,我只需迭代“window”对象。例如,如果我有var a=function(){};我可以用a();或window.a();在firefox中,但不在IE中。我有一个函数迭代窗口对象,并在程序中写入所有声明的函数名,如下所示:[javascript]IE中的所有函数都在哪里?,javascript,internet-explorer,Javascript,Internet Explorer,如果我想在firefox中获取程序中声明的所有函数和变量,我只需迭代“window”对象。例如,如果我有var a=function(){};我可以用a();或window.a();在firefox中,但不在IE中。我有一个函数迭代窗口对象,并在程序中写入所有声明的函数名,如下所示: for (smthng in window) { document.write(smthng); } 在FF工作(我以前有些东西没有申报)。有什么想法吗?这是一个众所周知的JScript错误 在IE中,除
for (smthng in window) {
document.write(smthng);
}
在FF工作(我以前有些东西没有申报)。有什么想法吗?这是一个众所周知的JScript错误 在IE中,除非将全局变量显式定义为窗口对象的属性,否则它们是不可枚举的
var a = function () {}; // It won't be enumerated in a `for...in` loop
window.b = function () {}; // It will be enumerated in a `for...in` loop
以上两种方法非常相似,唯一的区别是a
是用var
语句声明的,这使得它不可删除,而b
可以“删除
”
这里有一个解决方法:
delete window.a; // false
delete window.b; // true