Javascript 为什么";“窗口”;对象有这么多嵌套的“;“窗口”;物体?
例如,您可以使用Javascript 为什么";“窗口”;对象有这么多嵌套的“;“窗口”;物体?,javascript,object,nested,window,Javascript,Object,Nested,Window,例如,您可以使用窗口对象调用警报函数: window.alert("Hello World!"); 您还可以在窗口对象中使用窗口对象: window.window.alert("Hello World!"); 见鬼,你甚至可以这样做: window.window.window.window.window.window.window.window.window.window.window.window.window.alert("Hello World!"); 我知道这是荒谬的,没有一个理智
窗口
对象调用警报
函数:
window.alert("Hello World!");
您还可以在窗口
对象中使用窗口
对象:
window.window.alert("Hello World!");
见鬼,你甚至可以这样做:
window.window.window.window.window.window.window.window.window.window.window.window.window.alert("Hello World!");
我知道这是荒谬的,没有一个理智的开发人员会在现实生活中这样做,但为什么这是可能的
为什么有这么多嵌套的
窗口对象?每个全局变量都是全局对象的属性<代码>窗口
是全局的,因此窗口。窗口
必须存在并引用自身:
console.log(window.window==window)
它们不是嵌套对象-它们只是完全相同的对象。它(某种程度上)是自身的属性(因为所有全局对象都是窗口
对象的属性,窗口
是全局的…):
var myGlobal=“你好!”;
log(window.myGlobal==window.window.myGlobal);
console.log(窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗。窗w、 window.window.window.window.myGlobal==myGlobal);
让window属性引用对象本身的意义,
很可能使引用全局对象变得容易。否则,
您必须在窗口顶部执行手动var窗口=this;赋值
你的剧本
如下所述:
窗口对象的窗口属性指向窗口对象本身。因此,以下表达式都返回相同的窗口对象:
window.window
window.window.window
window.window.window.window
// ...
要创建自己的嵌套对象,请执行以下操作:
myObject = {}
myObject.myObject = myObject
与其说是“嵌套”的,不如说是指向同一个对象的所有链接。或者说是一个链接,可以重复多次。可能是