개념:
클로저는 다른 함수의 내부 변수를 읽을 수 있는 함수입니다.
클로저 메서드 만들기:
함수 내부에 또 다른 함수를 만들고 다른 함수를 통해 이 함수의 지역 변수에 액세스합니다.
function box(){ var user ='Zhu'; return function(){ return user; } } var b = box(); console.log(b()) console.log(box()())
클로저 사용의 장점:
전역 변수 오염을 방지하기 위해 지역 변수가 메모리에 상주할 수 있습니다.
클로저를 통해 지역변수 축적:
function func(){ var num=100; incr=function(){// 未使用关键字var , 该函数为全局 num+=1; return num; } var m1= function(){ console.log(num) } return m1; } var m1 = func(); m1();//100 console.log(incr())//101。。通过全局函数操作局部变量 m1();//101
단점:
클로저의 범위에서 반환된 지역변수 리소스는 즉시 소멸되지 않고 재활용되므로 클로저로의 전환이 쉽습니다. 결과적으로 성능 저하가 발생합니다.