我正在阅读 Firefox 源代码,我想知道如何创建一些全局函数。
我找不到创建窗口对象的位置或如何定义一些脚本访问的全局对象。
我想知道从哪里开始或者至少是在哪里定义和创建窗口对象,谢谢!
最佳答案
window
对象主要在 nsGlobalWindow.cpp 中定义.公共(public)方法/属性属于 nsIDOMWindow、nsIDOMJSWindow、nsIDOMEventTarget、nsIDOMStorageIndexedDB 和一些其他接口(interface)(查找 NS_INTERFACE_MAP_ENTRY
宏,但并非所有这些都引用公共(public)接口(interface))。
此外,作为任何 DOM 对象,它都可以具有 expando 属性(由脚本设置的属性)。在创建 DOM 包装器(nsWindowSH 类)时,会自动设置其中一些 expando 属性。特别是实现 nsIDOMGlobalPropertyInitializer 的组件可以在那个阶段设置属性,或者监听 content-document-global-created 的组件通知。
关于javascript - Firefox 源代码中定义或创建的 "window"对象在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580492/