我试图向数组中添加一个新节点,我认为这是在调用createList()时已经创建的一个新的空数组,所以我肯定做错了什么,因为我得到了一个list.nodes未定义的错误。
var head = createNode(null);
var list = createList();
list.nodes.push(head); // error is here, undefined array
function List(){
this.nodes = [];
this.addNodeToList = addNodeToList;
function addNodeToList(data){
var currentNode = head;
var newNode = createNode(data);
while(currentNode.getNextNode() != null){
currentNode = currentNode.getNextNode();
}
currentNode.nextNode = newNode;
return;
}
}
function createNode(data){
return new Node(data);
}
function createList(){
return new List();
}
function Node(data){
this.data = data;
this.nextNode = null;
}
function createList(){
return new Node(null);
}发布于 2015-04-27 06:23:14
您定义了两次creatList函数。后面的定义不返回节点数组:
function createList(){
return new Node(null);
}删除它,你应该会没事的
编辑:考虑以下几点:
var a = 5;
var a = 6;
//OR
var f = function (){ alert(1)}
var f = function (){ alert(2)}由于JS不支持函数重载,所以声明一个函数两次与上面的赋值具有相同的效果,后者隐藏了更好的效果。
https://stackoverflow.com/questions/29888487
复制相似问题