首頁 >web前端 >js教程 >javascript閉包 var that=this詳解

javascript閉包 var that=this詳解

小云云
小云云原創
2018-02-22 15:57:333095瀏覽

速覽

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


#學習Javascript閉包(Closure)(阮一峰)

相關推薦:

JavaScript閉包詳細介紹

#JavaScript關閉實例的簡單應用程式

javascript的閉包是什麼? javascript閉包如何使用?

以上是javascript閉包 var that=this詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn