这个简单的小提琴显示了 Window 对象的属性:
var obj = this; // object Window
var variables = "";
for (var name in obj) {
if (obj.hasOwnProperty(name)) {
variables += name + " : " + obj[name] + "<br/>";
}
}
document.writeln(variables);
当这个脚本被直接调用而不换行时,它会显示这个结果:
window : [object Window]
document : [object HTMLDocument]
InstallTrigger : [object Object]
obj : [object Window]
variables : window : [object Window] document : [object HTMLDocument] InstallTrigger : [object Object] obj : [object Window]
name : name
getInterface : function getInterface() { [native code] }
location : http://fiddle.jshell.net/_display/
navigator : [object Navigator]
但是当调用 onload时,它只显示:
window : [object Window]
document : [object HTMLDocument]
InstallTrigger : [object Object]
getInterface : function getInterface() { [native code] }
location : http://fiddle.jshell.net/4x3Tx/2/show/
navigator : [object Navigator]
所以问题很明显:有人可以解释为什么是obj
,variables
并且name
第二小提琴结果中缺少变量吗?在这两种情况下,都obj
指的是 Window 对象。