如何在窗口对象之外创建JavaScript对象?

如何在窗口对象之外创建JavaScript对象?,javascript,ecmascript-6,browser,ecmascript-5,Javascript,Ecmascript 6,Browser,Ecmascript 5,是否可以创建不在窗口对象下的js对象?如果是的话,怎么办? 当我试图理解ReactRoot()构造函数创建的\u internalRoot对象的位置时,有一种不同的方法。好人说它很可能不在窗口下 我确信我们不能在窗口对象之外创建对象 只需在局部变量中创建对象: function example() { var demo = {}; } example(); 即使示例是一个全局变量,并且以某种方式绑定到窗口,演示变量也不是。最简单的方法是,创建一个立即执行的函数(IIFE)并在其中创建对

是否可以创建不在窗口对象下的js对象?如果是的话,怎么办? 当我试图理解ReactRoot()构造函数创建的
\u internalRoot
对象的位置时,有一种不同的方法。好人说它很可能不在
窗口下


我确信我们不能在窗口对象之外创建对象

只需在局部变量中创建对象:

function example() {
    var demo = {};
}
example();

即使
示例
是一个全局变量,并且以某种方式绑定到
窗口
演示
变量也不是。

最简单的方法是,创建一个立即执行的函数(IIFE)并在其中创建对象

(function() {
  var yourObject = {};
})();

这里有关于IIFE的更多详细信息

您是指全局对象吗?只有全局变量(包括用
var
声明的顶级变量)被隐式添加到
窗口
。使用
let
const
声明的变量或函数中的变量,例如
函数ReactRoot(){var\u internalRoot={};}
不会添加到
窗口中。感谢所有的解释。最后一件麻烦的事是,当我创建这样一个对象时,我在堆快照(chrome)中看不到构造函数列表上的“ReactRoot”。感谢所有的解释。最后一件困扰我的事情是,当我在“ReactRoot”函数中创建一个对象时,我在堆快照(chrome)的构造函数列表中看不到“ReactRoot”。这个对象不是通过
demoObject=new ReactRoot
构建的,而是在
ReactRoot
函数中构建的。