Javascript生成嵌套对象

时间:2016-11-02 21:16:26

标签: javascript object scope nested

function OB(a){
  this.a;

  function Node(b){
    this.b = b;
  }
}
var a = new OB("test");
var b = new Node("test2");

我想要做的是在OB之外创建一个新节点。但是我收到了一个错误。解决方法是将Node构造函数从OB中分离出来,但如果我想在其他地方使用“Node”,则可能会导致命名冲突。

2 个答案:

答案 0 :(得分:0)

您的节点功能嵌套在OB功能中。您无法从父函数外部调用该函数。你需要这样做:

function OB(a){
    this.a;
}
function Node(b){
    this.b = b;
}
var a = new OB("test");
var b = new Node("test2");

答案 1 :(得分:0)

为什么不将Node函数附加到返回var a?

的对象
function OB(a){
  this.a;
}

OB.prototype.Node = function (b){
  this.b = b;
}

var a = new OB("test");
var b = new a.Node("test2");