Javascript 在使用prototype属性的函数内调用函数
我正在创建此节点Javascript 在使用prototype属性的函数内调用函数,javascript,function,prototype,Javascript,Function,Prototype,我正在创建此节点 function Node ( name, level, parent ) { this.name = name; this.level = level; this.children = []; this.parent = parent; this.id = this.createId(); } 当我引用this.name,this.level,this.parent和this.children时,我所做的函数中的一切都很好。当我尝试引用这个.id时,我一
function Node ( name, level, parent ) {
this.name = name;
this.level = level;
this.children = [];
this.parent = parent;
this.id = this.createId();
}
当我引用this.name
,this.level
,this.parent
和this.children
时,我所做的函数中的一切都很好。当我尝试引用这个.id
时,我一无所获
这是我设置此.id的函数
Node.prototype.createId = function () {
var p = this.parent;
return p.name;
}
我不知道我在Node函数中是否正确调用了它。在
this.createId()中将this
关键字作为参数传递代码>如下所示
function Node ( name, level, parent ) {
this.name = name;
this.level = level;
this.children = [];
this.parent = parent;
this.id = this.createId(this);
}
然后在节点中执行此操作
Node.prototype.createId = function (self)
{
var p = self.parent;
return p.name;
}
你能展示一下你是如何调用它的吗?你是如何创建节点的?您确定parent
不是undefined
如果未定义,则在引用p.name
时会出现脚本错误。另外,为什么要从createId()
方法开始?为什么不在你的构造函数中简单地设置this.id=parent.name
?@Alberto Zaccagni我正在调用的是其他人提到的节点函数,似乎这个问题可能是在你试图使用这个代码的方式上。这是一个有效的方法。这个在节点内。prototype.createId()
引用了与self
相同的对象,因此self
是完全冗余的。