Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过JS类传递向量数组时出现问题_Javascript_Arrays_Class - Fatal编程技术网

Javascript 通过JS类传递向量数组时出现问题

Javascript 通过JS类传递向量数组时出现问题,javascript,arrays,class,Javascript,Arrays,Class,我在类“Node”中的向量(子节点)的传递和数组中遇到问题。去上课。有什么明显的错误吗 // Node class // other class code var subNodePos =[]; // array has been correctly populated in node class // init array in construct // array has been correctly populated in node class Node.prototype.getSub

我在类“Node”中的向量(子节点)的传递和数组中遇到问题。去上课。有什么明显的错误吗

// Node class
// other class code
var subNodePos =[]; // array has been correctly populated in node class
// init array in construct
// array has been correctly populated in node class
Node.prototype.getSubNodeArray = function () { return this.subNodePos; }


// Main class
function draw() 
{
// code ...
// can access all object variables and methods except for this one array
var famPos = node.getSubNodeArray(); // passing array // fails here 'undefined'
var temp = famPos[0]; // error
}

您已将
subNodePos
声明为
节点
构造函数的私有变量

但此变量不适用于此方法:

Node.prototype.getSubNodeArray = function () { return this.subNodePos; }
您至少可以通过两种方式进行修复:

解决方案1。使
subNodePos
成为公共成员

将其设置为构造函数中此的属性:

function Node() {
    ...
    this.subNodePos = [];
    ...
}

Node.prototype.getSubNodeArray = function () { return this.subNodePos; }
解决方案2。在对象级别定义
getSubNodeArray

这是您希望保持
subNodePos
私有的时候。然后,您可以保留
var
声明,但必须在没有
的情况下引用它:

function Node() {
    ...
    var subNodePos = [];
    ...
    this.getSubNodeArray = function () { return subNodePos; }
    ...
}

node.subNodePos
是实际属性吗?什么是
node
?我们应该如何帮助您完成一个不完整的示例?请阅读。