Javascript 通过JS类传递向量数组时出现问题
我在类“Node”中的向量(子节点)的传递和数组中遇到问题。去上课。有什么明显的错误吗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 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
?我们应该如何帮助您完成一个不完整的示例?请阅读。