클로저는 중첩 된 함수 내에서 외부 함수 범위가 내부 함수 내에 유지되는 자바 스크립트 코드의 구조입니다. 예
는 :
function outer(x,y){
var t = 1;
return function(z){
//x, y, t from the outer function are made available to inner function
return x + y + z + t;
}
}
var outer1 = outer(1,1); //creating a closure, or an instance of a function in sense
alert(outer1(1)); //Alerts 4
var outer2 = outer(2,2);
alert(outer2(2)); //Alerts 7
클로저의 간단한 설명 ECMAScript를 이너 기능을 허용한다는 것이다; 함수 정의 및 다른 함수의 함수 기호 안에 인 함수 표현식이 있습니다. 그리고 그 내부의 함수는 모든 로컬 변수, 파라미터 에 접근 할 수 있고 외부 함수 (들) 내에서 선언 된 내부 함수에 접근 할 수 있습니다. 폐쇄 함수 은 내부 함수 중 하나가 포함 된 함수의 외부 외부에서 액세스 가능하게 될 때 형성되므로 외부 함수가 반환 된 후에 이 실행될 수 있습니다. 어느 시점에서 여전히 로컬 변수, 매개 변수 및 내부 함수 에 대한 액세스가 외부 함수의 선언에 있습니다. 이러한 로컬 변수, 매개 변수 및 함수 선언 (처음에는)은 외부 함수가 반환 될 때 의 값을 가지며 내부 함수에 의해 상호 작용할 수 있습니다.
Source
당신은 ... 제목, 또는 마지막 문장을 물어 무엇입니까? 기능적 접근 방식이 그 자리를 차지하고 있으며 원형 상속이 그 자리를 차지하고 있습니다. 둘 중 하나를 제외하는 것은 불행한 일입니다. "이"와 "그"문제는 큰 문제가 아닙니다. –
javascript에는 클래스가 없으므로 (프로토 타입/객체가 있음) 질문에 많은 의미가 없습니다. – jfriend00