【问题标题】:spidermonkey global object imagespidermonkey 全局对象图像
【发布时间】:2015-05-04 04:33:40
【问题描述】:

我一直在阅读 spidermonkey 文档 (https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_User_Guide),很难理解全局对象与所有变量和函数之间的关系。

假设我在 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() {};

蜘蛛猴的“全局对象”在运行时会包含什么?会不会像(树视图):

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

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

【问题讨论】:

    标签: javascript spidermonkey


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 2019-11-20
      相关资源
      最近更新 更多