【问题标题】:Namespaces tree javascript example and explanation of syntax命名空间树javascript示例和语法解释
【发布时间】:2011-11-01 06:55:50
【问题描述】:

命名空间树 javascript 示例和语法解释。

这个命名空间要在 javascript 中定义:

  1. 根

  2. root.person

  3. root.home

  4. root.home.relative

我试错了:

var root='';
root.person='';
root.home='';
root.home.relative='';

请解释一下你的代码我不懂js和php/c/java

谢谢

【问题讨论】:

标签: javascript javascript-namespaces


【解决方案1】:

JavaScript 没有 Java 等意义上的“命名空间”概念。相反,我们使用良好的旧对象,并为这些对象添加属性。

如果root 是您的“命名空间”,我们将root 定义为对象,并将命名空间的成员定义为对象上的members (“人”、“家”、“亲戚”)。

要声明一个对象(对于root),最简单的方法是使用object literal syntax

var root = {
    person: 'Jim',
    home: 'London'
}

您可以使用以下语法嵌套对象(以实现您的嵌套relative对象:

var root = {
    person: {
        'first_name': 'Matt',
        'last_name': 'Smith'
    },
    home: {
        relative: 'Frank'
    }
} 

【讨论】:

    【解决方案2】:

    如果要嵌套属性,请将变量设为对象,而不仅仅是字符串:

    var root = {};
    root.person = '';
    root.home = {};
    root.home.relative = '';
    console.log(root);
    

    如果您使用的是 Firebug,console.log 将漂亮地打印您的对象层次结构。

    【讨论】:

    • 谢谢!js如何允许root.person = [];而不是 root.prototype.person = [];?
    【解决方案3】:

    不确定我是否完全理解你的意思,但你的意思是:

    var root = {};
    root.person = '';
    root.home = {};
    root.home.relative = '';
    

    如果您想动态地为对象赋予额外的属性,而不仅仅是一个值,请将其声明为空对象字面量 var obj = {}; obj.subObj = {}; 等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      相关资源
      最近更新 更多