spidermonkey全局对象图像

时间:2015-05-04 04:33:41

标签: javascript spidermonkey

我一直在阅读spidermonkey doc(https://www.digitalocean.com/community/tutorials/docker-explained-how-to-containerize-and-use-nginx-as-a-proxy)并且很难理解全局对象与所有变量和函数之间的关系如何。

说我在test.js中有以下代码:

var Global_Var1 = 1;
var Global_Var2 = 2;
var Global_Func1 = function() {};
var Global_Func2 = function() {};

var Namespace_N1 = Namespace_N1 || {};
var Namespace_N2 = Namespace_N2 || {};

Namespace_N1.functionN1 = function() {};
Namespace_N2.functionN1 = function() {};

在运行时,sp​​idermonkey的“全局对象”内部会是什么?它会是什么样的(树视图):

Global Object (JS::RootedObject, JSClass)
     - Global_Var1 (as object property ? with value 1)
     - Global_Var2 (as object property ? with value 2)
     - Global_Func1 (as object property ? whose value is function)
     - Global_Func2 (as object property ? whose value is function)
     - Namespace_N1 (as object property ?)
             - functionN1
     - Namespace_N2 (as object property ?)
             - functionN1

有关此主题的任何信息将不胜感激,谢谢:)

1 个答案:

答案 0 :(得分:0)

全局对象确实是一个对象。例如,在浏览器的上下文中,window是全局对象。在全局范围内评估var a = 1;等同于将a的属性window设置为1,即window.a = 1;

The documentation of JS_InitStandardClasses表示JS上下文的初始化要求您将对象作为全局对象。给定对象的现有属性成为全局变量,JS_InitStandardClasses将标准全局属性(例如ArrayDateencodeURIComponent)添加到给定对象。