我有一个功能对象:
var myObj=function(){
};
myObj.prototype = {
availableColor: function(i){
return "red_"+i;
}
getColor: function(){
var c = availableColor('3'); //Error: availableColor is not a function
...
}
}
当我在availableColor(i)
函数内调用getColor()
时,出现错误 availableColor不是函数 ....
我还尝试使用var c = this.availableColor('3');
和
var self=this
在构造函数中,然后是var c = self.availableColor('3');
但是,这些都没有帮助。是什么原因?
答案 0 :(得分:1)
var myObj={
availableColor: function(i){
return "red_"+i;
},
getColor: function(){
var c = this.availableColor('3');
}
}
修改强>
另一种方法:
var myObj=function(){
};
myObj.prototype.availableColor = function(i){
return "red_"+i;
};
myObj.prototype.getColor = function(){
var c = this.availableColor('3');
return c;
};
b = new myObj();
document.write(b.getColor());
答案 1 :(得分:0)
如果您只想向myObj添加方法,请执行以下操作:
myObj.availableColor = function(i){
return "red_"+i;
}
myObj.getColor = function(){
var c = this.availableColor('3');
}
您使用prototype
的方式会使myObj
成为构造函数:var o = new myObj()
。 myObj
不会有这些方法。