with 문을 정의하는 목적은 주로 동일한 개체를 여러 번 작성하는 작업을 단순화하는 것입니다.
with 문은 개체를 범위 체인의 헤드에 추가한 다음 문을 실행하고 최종적으로 범위 체인을 복원합니다. 원래 상태로
with(object){ statement; }
Function
객체가 깊게 중첩된 경우 일반적으로 with 문을 사용하여 코드 작성을 단순화합니다. 기본적으로 새로운 어휘 범위는 객체의 참조를 범위로 처리하고 객체의 속성을 범위의 식별자로 처리하여 생성됩니다. 클라이언트측 자바스크립트에서는 다음과 같은 표현식을 사용하여 HTML의 요소에 액세스할 수 있습니다. form
document.forms[0].address.value이 식이 코드에 여러 번 나타나는 경우 with 문을 사용하여 범위 체인의 최상위 수준에 양식 개체를 추가할 수 있습니다.
with(document.forms[0]){ name.value = ''; address.value = ''; emai.value = ''; }이 접근 방식을 사용하면 각 접두사를 붙일 필요가 없으므로 많은 입력 작업이 줄어듭니다. document.forms[0]의 속성 이름입니다. 이 객체는 범위 체인에 일시적으로 마운트됩니다. JavaScript는 주소와 같은 식별자를 구문 분석해야 할 때 자동으로 이 객체를 검색합니다. [참고] with 문은 객체의 속성을 읽을 수 있는 지름길을 제공합니다. 객체의 속성을 생성합니다
객체 o에 x 속성이 있는 경우 다음 코드는 이 속성에 1
var o = {x:0}; with(o) x = 1; console.log(o.x);//1값을 할당합니다. 속성 =1이 정확히 동일한 경우입니다. 변수에 대해 LHS 쿼리를 수행하기 때문입니다. with 문을 사용한 코드에 비해 동작 속도가 느려집니다
var o = {}; with(o) x = 1; console.log(o.x);//undefined console.log(x);//1
엄격 모드
엄격 모드에서는 금지 with 문을 사용하세요
var x = 1; var o = {}; with(o){ x = 2; } console.log(x);//2 console.log(o.x);//undefined
위 내용은 JavaScript with 문의 기능과 부작용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!