>  기사  >  웹 프론트엔드  >  자바스크립트 클로저란 무엇인가요?

자바스크립트 클로저란 무엇인가요?

清浅
清浅원래의
2019-02-26 10:59:453211검색

JavaScript 클로저는 외부 함수 범위에 있는 모든 지역 변수, 매개변수 또는 기타 내부 함수에 액세스할 수 있는 내부 함수입니다. 클로저를 사용할 때 클로저를 사용하면 메모리 소모가 늘어나고 메모리 누수가 발생할 수 있다는 점에 주의해야 합니다. 자바스크립트의 클로저 기능은 자바스크립트의 중요한 지식 포인트이자 난제이기도 합니다. 간단히 말해서, 클로저는 함수가 함수 외부의 범위에서 액세스할 수 있는 변수입니다. 다음으로 이 글에서는 JavaScript 클로저가 무엇인지 구체적으로 소개하겠습니다. 참고가 되셨으면 좋겠습니다.

자바스크립트 클로저란 무엇인가요?

【추천 강좌:

JavaScript Tutorial

JavaScript Closure

JavaScript에서는 함수 정의와 함수 표현식이 다른 함수의 함수 본문(inner function ), 내부 함수는 자신이 위치한 외부 함수의 선언에 있는 모든 지역 변수, 매개변수 및 기타 내부 함수에 액세스할 수 있습니다. 내부 함수 중 하나가 외부 함수 외부에서 호출되면 클로저가 형성됩니다

클로저의 특징

클로저 함수에는 다음 세 가지 특성이 있습니다

(1) 함수 중첩 함수

(2) 내부 함수 외부 함수의 변수에 액세스할 수 있습니다

(3) 매개변수와 변수는 재활용되지 않습니다

예:

<script>
function f1(){
var n=999;
nAdd=function(){
	n+=1
}
function f2(){
 document.write(n);
    }
    return f2;
  }
  var result=f1();
  result(); 
  nAdd();
  result();
	</script>

출력 결과는 다음과 같습니다.

자바스크립트 클로저란 무엇인가요?위 코드는 다음과 같이 이해할 수 있습니다.

f1은 f2입니다. 부모 함수이고 f2는 전역 변수(반환 값)에 할당되어 f2가 항상 메모리에 있게 되고 f2의 존재는 f1에 따라 달라지므로 f1은 항상 메모리에 있고 호출 후에 삭제되지 않습니다. 가비지 수집 메커니즘(가비지 수집)이 수집되어 클로저가 형성됩니다.

자바스크립트 클로저란 무엇인가요?

클로저의 장점과 단점

장점


(1) 함수 내 변수의 보안을 보호하고 캡슐화를 구현하며 이름 충돌이 다른 환경으로 흘러가는 것을 방지할 수 있습니다

(2 ) 익명 자체 함수 실행으로 메모리 소모를 줄일 수 있음

(3) 메모리에 변수를 유지하면 캐시될 수 있음

단점

(1) 참조된 전용 변수를 삭제할 수 없어 메모리 소모가 늘어나고 메모리 누수가 발생함


(2) 클로저에는 도메인 간 액세스가 포함되므로 성능 손실이 발생하고 코드 실행 속도에 영향을 미칩니다.

추천 관련 기사:

JavaScript에서 클로저의 의미는 무엇이며 사용 방법요약: 이상이 이 글의 전체 내용입니다. 이 글이 모든 사람이 JavaScript의 클로저 기능을 이해하는 데 도움이 되기를 바랍니다.

위 내용은 자바스크립트 클로저란 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.