Javascript 在JS中更改全局范围

Javascript 在JS中更改全局范围,javascript,iframe,window,Javascript,Iframe,Window,假设我在父窗口中运行了一个Iframe 我在Iframe中加载了一个脚本,我希望该脚本能够访问其父脚本中的变量 与其一直说window.parent.X,不如直接声明: window= window.parent; 在Iframe?窗口的内部是js的受保护变量,您将无法覆盖它。但是,您可以将window.parent存储在另一个var中,然后使用该var: var parentWindow = window.parent; 你能举例说明你所说的“创建一个隐藏它的闭包”是什么意思吗 请注意,即

假设我在父窗口中运行了一个
Iframe

我在
Iframe
中加载了一个脚本,我希望该脚本能够访问其父脚本中的变量

与其一直说
window.parent.X
,不如直接声明:

window= window.parent;

Iframe

窗口的内部
是js的受保护变量,您将无法覆盖它。但是,您可以将
window.parent
存储在另一个var中,然后使用该var:

var parentWindow = window.parent;
你能举例说明你所说的“创建一个隐藏它的闭包”是什么意思吗


请注意,即使在IIFE的闭包中,您仍然拥有相同的全局对象,即,您不能通过
窗口
访问的任何内容都不会来自父窗口。

设置全局标识符窗口将不起作用。您可以创建一个隐藏它的闭包,也可以使用不同的标识符,例如
var pwind=window.parent
@PaulS。你能举一个例子说明“创建一个隐藏它的闭包”的意思吗?我对JS比较陌生。
// `window` here works normally

(function (window) {
    // `window` here is what would be `window.parent`
}(window.parent));

// `window` here works normally