在this question建议让所有 native 对象使用全局对象。然而,答案是不完整的,因为还有其他 native 对象无法通过全局对象访问。
我至少知道一个 - Arguments
没有来自全局对象的引用。还有哪些构造函数不能通过全局对象访问?
这个问题不限于浏览器,也可以包括 Node。
最佳答案
当您列出全局对象上引用的所有对象时,将包括 native objects (核心语言对象)和 host objects (由主机环境提供;在浏览器中,所有 DOM 内容等等)。这就是我们可以在代码中使用的全部内容。
该列表中没有Arguments
构造函数。可能有,但没有:
The arguments object is created by calling the abstract operation CreateArgumentsObject ECMAScript 5.1, Section 10.6
粗略地说,该操作创建了一个常规的 Object
(标准构造函数,标准原型(prototype)),使用一些额外的属性(如 length
)对其进行扩展,并设置其 [[ Class]]
内部属性到 "Arguments"
。这就是为什么 arguments.toString()
是 [object Arguments]
。
关于javascript - 哪些 native 构造函数不能通过全局对象访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061350/