Как получить доступ к этой функции в моем объекте? - PullRequest
1 голос
/ 18 апреля 2011

У меня есть объект функции:

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 ]

1 голос
/ 18 апреля 2011
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());
0 голосов
/ 18 апреля 2011

Если вы просто хотите добавить методы в myObj, просто выполните:

myObj.availableColor = function(i){
  return "red_"+i;
}

myObj.getColor = function(){
   var c = this.availableColor('3');
}

То, как вы используете prototype, сделает myObj конструктором: var o = new myObj().myObj не будет таких методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...