JavaScript类和构造函数(非Dojo

时间:2015-02-17 09:39:51

标签: javascript class

var TreeNode = function() {

  this.x    =       null;       
  this.y    =       null;
  this.data =       [];

  TreeNode = function(x1,y1,object) {
    this.x = x1;
    this.y = y1;
    this.data.push(object);
  };

};

我的问题是,如果我创建新TreeNode(90,80,"Hallo World");,它会告诉我这个数据是未定义的。任何人都可以帮助我吗?

问候

3 个答案:

答案 0 :(得分:1)

使用此

var TreeNode  = function(x1,y1,object)
    {
        this.data = [];
        this.x = x1;
        this.y = y1;
        this.data.push(object);
    };

var treeNode = new TreeNode(1,2, 'node data');

答案 1 :(得分:0)

您需要在推送之前创建数据:

TreeNode = function(x1,y1,object) {
    this.data = [];
    this.x = x1;
    this.y = y1;
    this.data.push(object);
};

答案 2 :(得分:0)

目前尚不清楚您要从您的问题中尝试实现的目标,但以下工作没有问题:

function TreeNode (x ,y, obj) {    
    this.x = x;
    this.y = y;
    this.data = [obj];
}

var aTreeNode = new TreeNode(1, 2, 'hello world');
console.log(aTreeNode.data);  //['hello world']

从上面的代码中,看起来你正在创建2个TreeNode构造函数 - 一个在另一个内部。这是故意的吗?