如何在我的对象中访问此功能?

时间:2011-04-18 10:24:47

标签: javascript javascript-framework

我有一个功能对象:

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');

但是,这些都没有帮助。是什么原因?

2 个答案:

答案 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不会有这些方法。