Latest web development tutorials
×

JavaScript 코스

JavaScript 코스 JavaScript 간략한 소개 JavaScript 용법 JavaScript 수출 JavaScript 문법 JavaScript 문 JavaScript 주의 JavaScript 변수 JavaScript 데이터 유형 JavaScript 사물 JavaScript 기능 JavaScript 범위 JavaScript 행사 JavaScript 현 JavaScript 운영자 JavaScript 비교 JavaScript If...Else JavaScript switch JavaScript for JavaScript while JavaScript Break & Continue JavaScript typeof JavaScript 형식 변환 JavaScript 정규 표현식 JavaScript 오류 JavaScript 디버깅 JavaScript 변수 리프트 JavaScript 엄격 모드 JavaScript 부적절한 사용 JavaScript 폼 인증 JavaScript 예약 키워드 JavaScript JSON JavaScript void JavaScript 코드 사양

JS 기능

JavaScript 함수 정의 JavaScript 함수 인수 JavaScript 함수 호출 JavaScript 클로저

JS HTML DOM

DOM 간략한 소개 DOM HTML DOM CSS DOM 행사 DOM EventListener DOM 요소

JS 고급 자습서

JavaScript 사물 JavaScript Number JavaScript String JavaScript Date JavaScript Array JavaScript Boolean JavaScript Math JavaScript RegExp 사물

JS 브라우저 BOM

JavaScript Window JavaScript Window Screen JavaScript Window Location JavaScript Window History JavaScript Navigator JavaScript 대중적인 JavaScript 시간 제한 이벤트 JavaScript Cookies

JS 창고

JavaScript 창고 JavaScript 테스트 jQuery JavaScript 테스트 Prototype

JS 예

JavaScript 예 JavaScript 객체 인스턴스 JavaScript 브라우저 객체 인스턴스 JavaScript HTML DOM 예 JavaScript 개요

JS 참조 설명서

JavaScript 사물 HTML DOM 사물

자바 스크립트 클로저

자바 스크립트 변수는 로컬 또는 글로벌 변수가 될 수 있습니다.

전용 변수는 폐쇄를 사용할 수있다.


글로벌 변수

기능과 같은 내부 기능에 의해 정의 된 변수를 액세스 할 수?

myFunction 함수 () {
var에 A = 4;
A * a를 반환;
}

»시도

기능은 다음과 같은 기능 정의 된 변수, 외부에서 액세스 할 수 있습니다 :

var에 A = 4;
myFunction 함수 () {
A * a를 반환;
}

»시도

후면의 예는 전역 변수이다.

웹 페이지에서 전역 변수 창 개체에 속한다.

글로벌 변수는 페이지의 모든 스크립트가 사용될 수있다.

첫 번째 인스턴스에서, 로컬 변수입니다.

로컬 변수는 단지 내부 함수를 정의 할 수있다. 다른 함수 나 스크립트 코드를 사용할 수 없습니다.

같은 이름의도 글로벌과 로컬 변수, 그들은 또한 두 개의 다른 변수입니다. 하나를 수정, 상기 다른 하나의 값에 영향을 미치지 않을 것이다.

주의 var 키워드를 사용하여 변수를 선언하지 않는 경우, 그것은 상기 함수에서 정의하더라도, 전역 변수이다.


변수 수명주기

글로벌 변수의 범위 즉, 자바 스크립트 프로그램을 통해, 글로벌 변수는 도처에있다, 글로벌 있습니다.

함수 내에서 선언 된 변수, 함수 안에서만 작동합니다. 이러한 변수는 범위가 로컬, 로컬, 함수의 매개 변수는 함수 작업 내에서 지역화됩니다.


카운터 딜레마

당신은 어떤 숫자 통계를 상상하고 싶은, 그리고 카운터는 모든 기능에서 사용할 수있는 경우.

전역 변수를 사용할 수 있습니다, 함수는 카운터가 증가 설정 :

VAR 카운터 = 0;

기능 추가 () {
카운터 + = 1;
}

() 추가;
() 추가;
() 추가;

// 카운터는 이제 3

»시도

카운터 값 변화는 추가 () 함수의 구현에서 발생.

그러나 문제는 페이지상의 모든 스크립트 () 함수를 추가 할 통화가없는 경우에도, 카운터를 변경할 수있다.

카운터의 값을 수정하지 함수를 호출 할 경우, I는 카운터 내의 함수를 선언하면 :

기능 추가 () {
VAR 카운터 = 0;
카운터 + = 1;
}

() 추가;
() 추가;
() 추가;

// 의도 출력 3이지만,하지, 출력은 하나이며 않았다!

»시도

위의 코드가 제대로 나오지 않을 것이다, 나는 () 함수를 추가 호출 할 때마다이 카운터는 1로 설정됩니다.

자바 스크립트 함수 인라인이 문제를 해결할 수있다.


자바 스크립트 중첩 된 기능

모든 기능은 전역 변수에 액세스 할 수 있습니다.

실제로 자바 스크립트에서는 모든 기능 범위의 층들을 액세스 할 수있다.

자바 스크립트는 중첩 된 기능을 지원합니다. 중첩 기능은 기능 층에 변수에 액세스 할 수있다.

이 예에서는 중첩 된 함수 플러스 () 상위 함수 카운터 변수에 액세스 할 수있다 :

기능 추가 () {
VAR 카운터 = 0;
기능 더하기 () {카운터 + = 1;}
PLUS ();
카운터를 반환;
}

»시도

우리는 카운터의 곤경을 해결할 수 있도록 우리는 플러스 외부 () 함수에 액세스 할 수 있습니다.

우리는 또한 한 번만 그 카운터 = 0을 확인해야합니다.

우리는 폐쇄가 필요합니다.


자바 스크립트 클로저

자신이하는 함수 호출을 기억 하는가? 이 기능을 할 것인가?

var에 추가 = (함수 () {
VAR 카운터 = 0;
함수를 반환 () {반환 카운터 + = 1;}
}) ();

() 추가;
() 추가;
() 추가;

3 // 카운터

»시도

분석의 예

워드 변수를 추가하는 함수의 리턴 값이 자신을 호출 나타낸다.

자동 호출 함수 한번만 수행된다. 제로로 카운터를 설정. 그리고 함수식으로 돌아갑니다.

사용의 함수로 변수를 추가합니다. 큰 부분은 기능 층 카운터의 영역에 액세스 할 수 있다는 것이다.

이 자바 스크립트 클로저라고합니다. 기능이 가능하게된다 있도록 전용 변수가 있습니다.

익명 함수의 보호 범위는 추가의 방법에 의해 변형 될 수 대응함.

주의 클로저 층 함수가 폐쇄되어있는 경우에도, 함수 내에서 하나의 기능 범위 변수에 접근 할 수있다.