JavaScript 변수 역할 영역 을 이해 하 는 것 이 더 쉽 습 니 다.

자 바스 크 립 트 자 체 는 간단 한 언어 로 서 변수 역할 영역 문제 처럼 많은 사람들 을 어 지 럽 게 합 니 다.이것 은 자 바스 크 립 트 의 폐쇄 적 인 존재 때 문 입 니 다.본 고 는 자 바스 크 립 트 변수 역할 영역 문 제 를 깊이 있 게 설명 하지 않 으 려 고 합 니 다.(사실 본인 도 이 화 제 를 깊이 있 게 이야기 할 능력 이 없습니다)'패키지'화 제 를 이야기 하지 않 고 본 고 는 가장 실 용적 인 자 바스 크 립 트 역할 영역 지식 만 토론 하고 자 합 니 다.1.자 바스 크 립 트 역할 영역 은 자 바스 크 립 트 를 두 가지 역할 영역 으로 분류 합 니 다.전역(window),함수 급(function)입 니 다.함수 급(function)은'블록 급(대괄호{}급)'으로 이해 하지 마 십시오.2.자 바스 크 립 트 전역 변수 와 국부 변수 1.1 을 모든 함수 의 가장 바깥쪽 에 정의 하고 var 키 워드 를 사용 하거나 사용 하지 않 는 변 수 는 전역 변수 입 니 다.전역 변 수 는 사실 window 대상 의 속성 으로 해석 되 기 때문에'window.전역 변수 이름'으로 접근 할 수 있 습 니 다.필요 없 이 변수 이름 으로 직접 접근 하 는 것 을 추천 합 니 다.다음 과 같은 예 는 전역 변수 정의 에서 가장 흔히 볼 수 있 는 방법 을 보 여 준다
 
var msg1='This is message 1';
msg2='This is message 2';
alert(window.msg1); //This is message 1 window
alert(window.msg2); //This is message 2
alert(msg1); //This is message 1 window
alert(msg2); //This is message 2
function otherFunction(){} //
var otherObject={};
1.2 함수 내(국부 변수 가 실 행 될 때 환경)와 같이 전역 변 수 를 정의 하고 가 져 올 수 있다.정의 하 는 방법 은 var 키 워드 를 사용 하지 않 고 국부 환경 에서 전역 변수 내용 을 쉽게 얻 을 수 있 으 며 전역 변수 이름 으로 직접 인용 하면 된다.주의해 야 할 것 은 함수 내 에서 전체 변수 와 같은 이름 의 부분 변 수 를 정의 하면 함수 체 는 자신의 부분 변 수 를 우선 사용 할 것 입 니 다.이때 같은 이름 의 전체 변 수 를 사용 하려 면 window 접 두 사 를 추가 하 십시오.예 를 들 어 다음 과 같다.이 변 수 는 이 함수 에서 어느 곳 에서 든 접근 할 수 있 지만 이 함수 의 밖에서'직접'접근 할 수 없습니다.예 를 들 어 다음 과 같다
 
var msg1='This is message 1';
var msg3='This is message 3';
function otherFunction()
{
msg2='This is message 2'; // var ,
var msg3='Message 3';
alert(msg1); //This is message 1 ( , , JavaScript )
alert(msg3); //Message 3 ( msg3)
alert(window.msg3); //This is message 3 ( window msg3)
alert(this.msg3); //This is message 3 ( otherFunction () , otherFunction () this window, window. msg3 this. msg3 )
}
otherFunction();
//otherFunction msg1 msg2
alert(window.msg1); //This is message 1
alert(window.msg2); //This is message 2
2.2 부모 함수 의 변 수 는 하위 함수 에 접근 할 수 있 지만 하위 함수 의 변 수 는 부모 함수 에 접근 할 수 없다.이것 은 우리 가 처음에 말 한 함수 급 작용 역 과 일치 하 는 것 이 분명 하 다.이것 은 보기에 아버지 가 좀 시원시원 하고 아들 이 좀 인색 하 다.예 를 들 어 다음 과 같다.예 를 들 어 다음 과 같다.다음 두 단락 의 코드 는 사실 같은 기능 을 실 현 했 고 첫 번 째 단락 의 코드 작성 법 은 자신 이 그 익명 함수 에서 자신 이 사용 하고 자 하 는 변수 이름 등 을 대담 하 게 사용 할 수 있다.자신 이 정의 한 변수 가 다른 사람 이 정의 하거나 다른 곳 에서 정의 한 변 수 를 덮어 쓰 는 것 을 걱정 하지 않 아 도 된다
 
function showMsg()
{
if (true)
{
var msg='This is message';
}
alert(msg); //This is message
}
showMsg();
alert(typeof(msg)); //undefiend
// if {} msg if showMsg() , showMsg()
3.실례 화 되 지 않 은 함수 에서 this 를 사용 하여 window 대신 전역 변 수 를 방문 하 는 것 을 권장 하지 않 습 니 다.일반적인 상황 에서 this 키 워드 를 사용 하 는 함 수 는 자 바스 크 립 트 클래스 로 처리 해 야 합 니 다.다음 함수 가 일반 함수 로 만 호출 된다 면 this 키워드 가 나타 나 지 말 아야 합 니 다.이것 은 보통 전역 변 수 를 조작 하 는 것 이기 때 문 입 니 다.예:
 
function showMsg()
{
var MsgA='Message A';
this.setMsg=function(msg)
{
var MsgB='Message B';
alert(MsgA); //Message A ( setMsg() showMsg() MsgA)
}
alert(MsgB); //MsgB ( MsgB)
}
var sm=new showMsg();
sm.setMsg('Message string');
4.관련 지식 포 인 트 는 다음 과 같은 관련 지식 포 인 트 를 이해 하 는 데 도움 이 됩 니 다.자 바스 크 립 트 변수 역할 영역 을 잘 인식 하 는 데 도움 이 됩 니 다.본 고 는 상세 하 게 설명 하지 않 고 나중에 단독 편폭 으로 말씀 드 리 겠 습 니 다.주목 하 시기 바 랍 니 다.(1) 자 바스 크 립 트"예 해석"이해 (2) 자 바스 크 립 트 폐쇄

좋은 웹페이지 즐겨찾기