【发布时间】:2016-07-30 21:56:10
【问题描述】:
我有一个正在创建的 Node 对象。以下是 Node 对象的构造函数中的相关代码:
function Node(x,y,traversable){
...
this.traversable = traversable;
...
Node.isTraversable = function(){ return this.traversable};
}
然后我有一个嵌套循环,它创建一个节点网格并尝试访问一些节点的方法。 “map”是一个字符串数组。每个字符串代表编码地图上的一条线。地图上的每一行长度相同,每行字符要么是“e”,要么是“o”,表示可穿越的空间或障碍物空间。以下是相关代码:
...
var nodes = [];
...
for (var i=0;i<map.length;i++){
var array = [];
nodes.push(array);
for(var j=0;j<map[i].length;j++){
var temp = new Node(i,j,map[i][j]=='o'||map[i][j]=='O' ? false : true);
if(temp.isTraversable()) console.log('check ok');
...
}
}
我得到的错误是:
Uncaught TypeError: temp.isTraversable is not a Function
谁能向我解释为什么不允许我访问我在构造函数中定义的函数?我是 JavaScript 新手,尤其是面向对象的 JavaScript。提前致谢!
【问题讨论】:
-
使用
this.isTraversable而不是节点 -
正确答案@JordanHendrix
标签: javascript object methods typeerror