2009-08-05 2 views
2

번호를 인덱스로받는 사용자 지정 Array 개체를 만들고 인덱스 값에 따라 계산 된 값을 반환합니다. 예를 들어자바 스크립트에서 속성을 만들 수 있습니까?

:

>>> var MyArray(2); 
>>> MyArray[2]; 
4 
>>> MyArray.2; 
4 

내가 보여 주었다 예를 들어, 나는 기능을 더 잘 해요 알고,하지만 난이 몇 가지의 속성/인덱스 조회를 대체 할 수 있는지 알고 싶어요 개념적 배열이지만 일부 계산이 필요할 수 있습니다.

나는 x.1 == x[1]을 알고 있으므로 자바 스크립트에서 속성을 만드는 것이 좋습니다.

내 말은 이라고 말하면 x.variable 값을 얻을 때마다 x.myPorperty()의 결과를 얻습니다.

이것도 가능합니까?

답변

2

변수 [property]는 점 표기법과 동일하므로 평가되는 메소드가 아니라 변수 인 MyArray.2를 수행하고 있습니다. 속성이 할당 될 때 속성을 변경하는 메서드 또는 사용자가 속성을 꺼낼 때 올바른 값을 계산하는 메서드가 없으면 실제로 원하는 것을 수행 할 수 없습니다.

그리고 아니, 당신은 무시할 수 없습니다 [], 당신은

재를 대체 할 수는 단순히 점 표기법, 그 인덱스 정말이 : 귀하의 의견은, 물론, 당신은 할 수있는 현재

var x = new Array(); 
x[1] = function() { alert('x') }; 

var myFunction = x[1]; 

x[1]();  // alerts "x" 
myFunction(); // alerts "x" 

alert(x[1]);   // alerts "function() { alert('x') };" 
alert(myFunction); // alerts "function() { alert('x') };" 
+0

저는'x [1] == x.1'을 알고 있습니다. 'x.i == x.myProperty()'를 만드는 방법이 있습니까? – voyager

+0

나는 포스트에서 기억하고있다. 함수를 선언하고 전달할 수 있으며, 호출하여 결과를 얻을 수 있지만,() 없이는 함수를 호출 할 수 없다. –

+0

나는 자신을 올바르게 설명하지 못했다고 생각한다. 나는 함수가 재정렬 될 수 있다는 것을 알고 있지만, 파이썬의 것, .NET의 자바의 getter와 setter 대신에 할 수있는 속성을 알고 있는가? – voyager