JavaScript에는 키워드가 있습니다. With 문의 원래 목적은 단계별 객체 액세스를위한 네임 스페이스 스케치 방법을 제공하는 것입니다. 즉, 지정된 코드 영역에서 객체는 노드 이름을 통해 직접 호출됩니다.
With 문의 기능은 스코프 체인을 일시적으로 변경하고 반복 된 입력을 줄이는 것입니다.
구문 구조는 다음과 같습니다.
with (object) {// statement}실용적인 예를 들어 봅시다 :
with (document.forms []) {name.value = "Lee King"; address.value = "Peking"; ZipCode.Value = ""; }해당 전통적인 글쓰기 방법은 다음과 같습니다.
document.forms []. name.value = "Lee King"; document.forms []. address.value = "Peking"; document.forms []. ZipCode.Value = "";
With 문의 간결함과 명확성을 볼 수 있지만 코드 세계에서 진정한 완벽 함을 찾기가 어렵습니다.
JS 통역사는 With Block의 변수가 With Block에 포함 된 객체에 속하는지 여부를 확인해야하므로 명령문의 실행 속도를 크게 줄이고 JS 문을 최적화하기가 어렵습니다. 속도 및 코드 볼륨을 고려하기 위해 비교적 타협 솔루션을 찾을 수 있습니다.
var form = document.forms []; form.name.value = "Lee King"; form.address.value = "Peking"; form.zipcode.value = "";
따라서 향후 효율적인 코드 개발에서는 가능한 한 진술과 함께 사용하지 않아야합니다.
테스트 후 :
var a = 123; var b = {a : 321}; with (b) {console.log (a); // 321} var a = 123; var b = {}; (b) {console.log (a); // 123} 스코프 체인에서 분석하려면JavaScript에서는 기능이 객체이며 실제로 JavaScript의 모든 것은 객체입니다. 함수 내부에는 JavaScript 엔진에만 액세스 할 수있는 내부 속성이 있습니다. 이 속성에는 함수가 생성 될 때 범위에 객체 모음이 포함되어 있습니다. 이 컬렉션을 스코프 체인이라고합니다.
예를 들어 다음 코드 :
함수 추가 (num1, num2) {var sum = num1 + num2; 반환 합계; }함수가 생성되면 아래 그림과 같이 글로벌 객체가 모든 글로벌 변수를 포함하는 스코프 체인으로 채워집니다.
함수가 실행되면 모든 로컬 변수, 매개 변수 및이 기능을 포함하는 활성 객체가 생성됩니다. 그런 다음 객체가 스코프 체인의 프론트 엔드로 밀려납니다. 함수가 실행되면 물체도 파괴됩니다.
글로벌 변수가 활성 객체에 의해 스코프 체인의 끝으로 밀려 나면 글로벌 변수 액세스 속도가 느립니다!
~와 함께
일반적으로, 스코프 체인은 진술과 어획량에 의해서만 영향을받습니다. 함께 사용하면 기능이 새로운 활성 객체를 생성하고 프론트 엔드로 밀어 넣습니다. 이는 모든 로컬 변수가 두 번째 스코프 체인 객체에 있기 때문에 사용하지 않아야합니다.
위의 것은 편집자가 당신에게 소개 한 JavaScript의 문장에 대한 이해입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 더 많은 정보를 알고 싶다면 Wulin.com 웹 사이트에주의를 기울이십시오!