(i) 동적 선택 방법 및 속성
실제 작업에서 우리는 종종이 상황에 직면합니다. 특정 조건에 따라 두 가지 방법 중 하나를 호출하거나 두 속성 중 하나에 대한 작업을 읽고 쓰십시오 [2]. 다음 코드는 다음을 보여줍니다.
코드 사본은 다음과 같습니다.
if (조건) {
myobj.method1 (somearg);
} 또 다른 {
myobj.method2 (somearg);
}
JavaScript는 사각형 브래킷 연산자 ([])를 사용하여 방법과 속성을 동적으로 선택하는 간단한 구문을 제공합니다. 다음 코드에서 볼 수 있듯이 JavaScript에는 두 개의 동등한 멤버 액세스 구문이 있습니다 (이 기능은 동적 언어에서 일반적입니다).
obj [expressionResultingInmemberName] == obj.memberName
정수 구역을 사용하여 배열에서 요소에 액세스 한 경우 이미 동적 멤버를 선택하기 위해 정사각형 브래킷 연산자를 사용하기 시작했습니다. 배열 객체 자체에는 숫자 첨자의 이름을 따서 명명 된 속성 (및 길이 속성)이 포함되어 있기 때문입니다. 그러나 JavaScript를 사용하면 DOT 연산자 (.)를 사용하여 이러한 속성에 직접 액세스 할 수 없으므로 MyArray.0은 구문 적으로 불법입니다 (수치스럽고 멋진 구문입니다).
Square Bracket 연산자가 DOT 운영자 표기법보다 더 강력한 이유는 무엇입니까? 사각형 브래킷의 멤버 이름을 나타내는 컨텐츠를 사용하여 객체의 멤버에 액세스 할 수 있기 때문입니다. 여기에는 리터럴, 멤버 이름을 보유하는 변수, 이름 조합 (주로 문자열 스 플라이 싱) 및 3 차 연산자 (조건? ValueIftrue : ValueIffalse)를 사용하여 빠른 IF/선택이 포함됩니다. 이 컨텐츠는 모두 문자열로 처리되며 JavaScript는이 문자열을 사용하여 해당 멤버를 찾습니다.
JavaScript의 함수는 그 자체가 객체이므로 다른 값과 마찬가지로 참조 할 수 있습니다. 표현식 결과가 함수 인 경우 기능 이름으로 기능을 직접 호출하는 것처럼 브래킷 연산자와 직접 호출 할 수 있습니다.
이 트릭을 메소드에 전달하는 매개 변수 에서이 트릭을 크게 사용하면 혼란스러운 괄호는 코드를 읽기 어려울 수 있으며 현재 일반 IF/Else 구조를 사용하는 것이 더 현명합니다.
(ii) JavaScript 트래버스 객체 특성 및 방법
JavaScript는 in in 문을 사용하여 객체의 속성과 방법을 반복합니다. in in 문은 매번 JavaScript 객체를 통해 반복됩니다.
문법:
코드 사본은 다음과 같습니다.
for (objectname의 valueName) {
// 코드
}
ValueName은 변수 이름으로, 속성 또는 방법이 루프 할 때마다 ValuEname의 값이 변경됩니다.