javascript closure 예제

마지막 코드 블록 예제에서 내 질문은 내부 함수가 다른 함수를 반환하는 이유는 무엇입니까? 다른 함수를 반환하는 것이 유일한 목표인 함수를 만드는 중복되지 않습니까? 아니면 내가 뭔가를 놓치고 있습니까? 이 문제가 발생한 이유는 이전 예제에서 설명한 것처럼 클로저(이 예제의 익명 함수)는 값이 아닌 참조로 외부 함수의 변수에 액세스할 수 있기 때문입니다. 따라서 이전 예제에서 클로저로 업데이트된 변수에 액세스할 수 있음을 보여 주었던 것처럼 이 예제는 외부 함수가 전체 for 루프를 실행하고 103인 i의 마지막 값을 반환하기 때문에 변경되었을 때 i 변수에 유사하게 액세스했습니다. 내부 함수 본체는 클로저 내부에 중첩되어야하며 이름으로 호출되는 경우 외부 함수 엔터티에 액세스 할 수 없으며 본체는 다른 곳에 기록됩니다. 맞죠? 설명: 위의 예제에서는 기본 함수가 아닌 매개 변수 함수를 사용했습니다. foo(5)의 실행이 완료되더라도 내부 함수에서 outer_arg 변수에 액세스할 수 있습니다. 그리고 내부 함수의 실행에 원하는대로 outer_arg 및 inner_arg의 합계를 생성합니다. 출력 : 이봐, 다시 한번 감사합니다, 당신은 좋은 자원이었다. 나는 여기에 몇 가지 훌륭한 자원을 찾고있다. 그럼 기사..

난 그냥 자바 스크립트를 사랑 해요! 이것은 아주 단순히 거기 밖으로 최고의 자바 스크립트 자습서 중 하나입니다. 사실, 나는 오늘 전화 인터뷰에서 자바 스크립트 폐쇄에 대해 물었다. 나는 이것을 먼저 읽었으면 좋겠다. Doh! 파라메트릭 변수가 무엇인지 물어볼 수 있습니까? 자바스크립트에서 클로저는 데이터 프라이버시를 활성화하는 데 사용되는 기본 메커니즘입니다. 데이터 개인 정보 보호를 위해 클로저를 사용하는 경우 포함된(외부) 함수 내에서만 포함된 동봉된 변수가 범위에 있습니다. 개체의 권한 있는 메서드를 통해 서 제외 하 고 외부 범위에서 데이터를 얻을 수 없습니다. JavaScript에서 클로저 범위 내에 정의된 노출된 메서드에는 권한이 있습니다. 예를 들어, 기본적으로 (다른 방법으로 언급) 그 클로저는 외부 함수의 변수 와 매개 변수 값의 값이 여전히 있을 것이라는 것을 알고, 언젠가 나중에 실행을 위해 함수 (내부 함수)를 “설정”할 수 있습니다 (“저장되었습니다” “나중에 사용하기 위해 메모리에)? 디스크의 파일이나 실제 데이터베이스 등에 해당 값을 저장할 필요 없이 카운터1과 카운터2의 두 카운터가 각각 다른 카운터와 독립성을 유지하는 방법을 확인합니다. 각 클로저는 자체 클로저를 통해 다른 버전의 privateCounter 변수를 참조합니다. 카운터 중 하나가 호출될 때마다 이 변수의 값을 변경하여 어휘 환경이 변경됩니다. 그러나 한 클로저에서 변수 값을 변경하는 것은 다른 클로저의 값에 영향을 주지 않습니다. 이봐, 귀하의 사이트는 굉장하다! 나는 즉시 호출 된 함수에 대한 마지막 예를 들어, 어떻게 간단한 대신 중첩 된 함수를 가지고 있는지에 대한 질문이 있습니다 : 클로저 및 더 많은 JavaScript 단점을 마스터하는 여정을 계속하려면 몇 가지 훌륭한 리소스가 있습니다.

전역 변수는 폐쇄와 로컬 (개인)을 만들 수 있습니다. 나는 중첩 된 IIFE`s의 마지막 예가 당신의 의도와 일치하지 않는다고 생각합니다 (내가 생각하는 것처럼 :-). 문제는 모든 IIFE가 즉시 실행되므로 `theCelebrities[i][id]`는 더 이상 함수가 아닌 값입니다. IIFE는 값을 직접 할당하는 것과 같습니다: theCelebrities[i][id”] = 고유 ID + j; (존쿠가 올바르게 말한 대로) 안녕하세요 리처드, 긴 게시물에 대 한 죄송 합니다.