정의 내부는 그의 "JavaS 고급 프로그래밍"에서보세요
폐쇄 (폐쇄)의 다른 변수 함수 영역에 대한 액세스 수단을 갖는 함수
실측치 폐쇄 (폐쇄)는 폐쇄에 속하는 특정 기능을 액세스 할 수있는 폐쇄 변수, 함수 및 변수의 내부를 통해 액세스 할 수있는 기능 (폐쇄)이고
function fn(){ //一个闭包(closure),a被函数f访问
var a=10;
f();
function f() {
console.log(a); //输出10
}
}
fn();
크롬에서 내지도를 시운전 :
예 1 :
function fn(){ //一个闭包
var a=100; //局部变量
function f() {
console.log(a);
}
return f; //返回一个函数,所以fn也是一个高阶函数
}
var ff=fn();
ff(); //这样就实现了在全局作用域下访问了局部作用域的变量
폐쇄의 주요 역할 : 변수의 범위를 확대
예 2 :
var uname='window';
var object={
uname:'object',
funct:function () {
return function () {
console.log(this); //this指向window对象
return this.uname; //打印出 window字符串
};
}
};
console.log(object.funct()()); //没有闭包
**
예 3 :
**
var uname='window';
var object={
uname:'object',
funct:function () { //是一个闭包
var that=this; //this指向object对象
return function () {
console.log(this); //this指向window对象
return that.uname; //打印出 object字符串
}
}
};
console.log(object.funct()());