JavaScript with 문의 기능과 부작용에 대한 자세한 설명

伊谢尔伦
풀어 주다: 2017-07-25 14:05:51
원래의
1520명이 탐색했습니다.

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 문을 사용한 코드에 비해 동작 속도가 느려집니다


게다가 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!