在this question中,建议按顺序获取所有本机对象以使用全局对象。但是答案是不完整的,因为有其他本机对象无法通过全局对象访问。
我知道至少有一个 - Arguments
没有来自全局对象的引用。通过全局对象无法访问哪些其他构造函数?
这个问题不仅限于浏览器,也可能包括Node。
答案 0 :(得分:1)
列出全局对象上引用的所有对象时,将包括native objects(核心语言对象)和host objects(由主机环境提供;在浏览器中,包含所有DOM内容,以及更多)。这就是我们可以在代码上使用的全部内容。
该列表中没有Arguments
构造函数。可能有一个,但没有:
通过调用抽象操作CreateArgumentsObject创建arguments对象 ECMAScript 5.1, Section 10.6
粗略地说,该操作会创建一个常规Object
(标准构造函数,标准原型),并使用length
等一些额外属性扩展它,并将其[[Class]]
内部属性设置为{{1 }}。这就是为什么"Arguments"
是arguments.toString()
。