2011-04-18 9 views
1

내가 함수 객체가 : 나는 availableColor(i) 기능 getColor() 내에서 호출 할 때내 개체에서이 함수에 액세스하는 방법?

var myObj=function(){ 

}; 

myObj.prototype = { 
    availableColor: function(i){ 

     return "red_"+i; 

    } 

    getColor: function(){ 
    var c = availableColor('3'); //Error: availableColor is not a function 
    ... 
    } 

}

을, 나는 availableColor 함수 ....

나는 또한에 시도하지 오류가 발생했습니다 사용 var c = this.availableColor('3');

var self=this을 생성자에 넣은 다음 var c = self.availableColor('3');

그러나 이러한 도움이되지는 않습니다. 이유는 무엇입니까?

답변

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()); 
+0

개체 대신 함수를 사용하는 것이 좋습니다. – Mellon

+0

여전히 "availableColor가 함수가 아닙니다"오류가 발생했습니다. – Mellon

+0

@Mellon은 첫 번째 메서드 정의 후 쉼표를 넣는 것을 잊어 버린 것처럼 보입니다. – vooD

0

그냥 myObj로하는 메소드를 추가 할 경우에, 다만 수행

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

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

당신 것 prototype를 사용하는 방법 myObj을 생성자로 만듭니다. var o = new myObj(). myObj에는 이러한 메소드가 없습니다.

+0

안녕하세요, 나는 myObj를 생성자로 만들고 싶습니다. myObj를 생성자로 사용할 때 문제를 없애고 싶습니다. – Mellon

관련 문제