>웹 프론트엔드 >JS 튜토리얼 >자바스크립트 클로저 var that=this에 대한 자세한 설명

자바스크립트 클로저 var that=this에 대한 자세한 설명

小云云
小云云원래의
2018-02-22 15:57:333094검색

빠른 개요

var f1  = function(){
    var a = 999;
    nAdd = function(){n+=1}    //没有var,nAdd是全局变量
    f2 = function(){
        alert(a)
    }
    return f2;
}
var result = f1();
result();    //999
nAdd();        //相当于一个setter,可以在函数外部操作函数内部变量的值
result();    //1000,f2()被执行了2次

클로저의 개념

함수 내 함수

클로저의 목적

함수 내부의 변수를 읽을 수 있습니다
항상 상위 함수의 변수를 메모리에 유지하세요
참고: 원하는 경우 부모를 유지하려면 함수의 변수 값이 변하지 않으므로 부모 함수를 객체로 사용해야 합니다

//父函数作对象
var name = 'The Window';
var object = {
    name : 'The Object',
    getName : function(){
        return function(){
            return this.name
        }
    }
}

alert(object.getName()())    //The Window

var that = this;

var _name = 'The Window';
var object = {
    _name : 'The Object',    //_name 下划线表示私有变量
    getName : function(){
        var that = this;
        return function(){
            return that._name;
        }
    }
}

alert(object.getName()())    //The Object

that=this / _this=this


배우기 자바스크립트 클로저(Closure)(阮Yifeng )

관련 추천:

자바스크립트 클로저에 대한 자세한 소개

자바스크립트 클로저 예제의 간단한 적용

자바스크립트 클로저란 무엇인가요? 자바스크립트 클로저를 사용하는 방법은 무엇입니까?

위 내용은 자바스크립트 클로저 var that=this에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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