JS 폐쇄 (폐쇄)와 삼가지 경우

정의 내부는 그의 "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()());

그림 삽입 설명 여기

게시 24 개 원래 기사 · 원의 칭찬 0 · 조회수 249

추천

출처blog.csdn.net/weixin_45969777/article/details/104878328