Javascript 의 with
with 는 역할 영역 체인 을 잠시 수정 합 니 다.
<script>
function a(){
with (b) {
...
}
}
a();
</script>
함수 a 가 정의 할 때 a 의 역할 도 메 인 체인 을 확 정 했 습 니 다. 우 리 는 이 체인 의 맨 위 가 전체 대상 window 라 고 생각 합 니 다.
함수 a 가 실 행 될 때 자바 script 엔진 은 콜 object 를 생 성하 여 역할 도 메 인 체인 끝 (window 대상 이후) 에 추가 합 니 다. 문 구 는 with (b) 로 실 행 될 때 b 를 역할 도 메 인 체인 의 끝 에 추가 합 니 다. 따라서 with 안의 변 수 를 찾 으 면 이 체인 의 b 에서 먼저 찾 습 니 다. > 그리고 a 의 callobject 에서 찾 습 니 다. - > 마지막 으로 window 를 찾 습 니 다.with 안의 문 구 를 실행 한 후에 역할 도 메 인 체인 은 원상 태 로 회복 합 니 다 (b 는 역할 도 메 인 체인 으로 이동 합 니 다).
이상 은 예 코드 가 실 행 될 때의 미시적 세계 입 니 다.
with 는 추천 되 지 않 습 니 다. 그 가 역할 도 메 인 체인 을 조작 하기 때문에 with 문 구 를 사용 하기 전에 변 수 를 찾 는 경로 가 길 어 지고 실행 효율 이 떨 어 집 니 다.
어떤 사람들 은 with 가 코드 량 을 절약 할 수 있다 고 생각 할 수 있다. 예 를 들 어
with(document.forms[0]){
name.value='';
address.value='';
email.value='';
}
document. forms [0] 를 적 게 쓸 수 있 습 니 다. 사실 하나의 부분 변 수 를 with 중의 b 를 대체 하 는 것 도 같은 목적 을 달성 할 수 있 고 효율 도 손실 이 없다.
var c=document.forms[0];
c.name.value='';
c.address.value='';
c.email.value='';
KennyMa
:http://www.cnblogs.com/kaima/archive/2009/03/11/1408748.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.