2012-10-28 4 views
-1

내 자신의 자바 스크립트 클래스를 만들고 싶습니다. 내 질문은, 어떻게 문맥에 따라 두 가지 differents 효과를 가진 함수를 만드는 것입니다. 하나의 자바 스크립트 클래스로 두 가지 효과

function Matrix(str) { 
this.G = 2 dim array; 
this.e = function(x,y){ 
    G[x][y] = 3 // if the user types myGraph.e(1,1) = 3; 
    return G[x][y] // if user call myGraph.e(1,1); 
} 

그래서 어떻게 하나 개의 기능을 가진 두 개의 서로 다른 결과를 얻을 수 있습니다 여기에

은 예입니다? myGraph.e(1,1) = 3myGraph.e(1,1)

Thx!

할 수없는
+0

요청한 구문 과부하가 자바 스크립트에서는 불가능합니다. – Alnitak

+0

'myGraph.e (1,1) = 3'은 (는) 유효한 JavaScript 코드가 아닙니다. –

+0

인스턴스 변수가 아닌 전역 변수'G'를 사용하고 있습니다. 자바 스크립트에서,'this.'를 쓰는 것은 java에있는 것처럼 선택적이 아닙니다. – Esailija

답변

0

:

this.e = function(x, y, value) { 
    if (typeof value !== 'undefined') { 
     this.G[x][y] = value; 
    } 
    return this.G[x][y]; // always return the value 
} 

NB : 그것은의 차원 더 일반적입니다 두 번째 배열은 이 아니라 y을 나타냅니다.

1

,하지만 당신은 단순히 세 번째 인수를 취할 수 있습니다

약간 Esalija의 대답 @ 수정
this.e = function(x , y, value){ 
    switch(arguments.length) { 
     case 3: this.G[x][y] = value; return; // myGraph.e(1, 1, 3); 
     case 2: return this.G[x][y]; // myGraph.e(1, 1); 
     default: throw new TypeError("..."); 
    } 
} 
+0

Thx :)! 나는이 방법으로 그것을 시도 할 것이다. –

관련 문제