js - 閉包

/*
* 閉包

* 定義於一個內存空間裏的函數, 這個內存空間可以是一個函數 (包括 window函數 和 匿名函數), 可以是一個變量對象

* 一個內存空間裏, 調用的變量, 保留於內存; 不被調用的, 就被銷燬
	被調用閉包如果引用其外空間下的變量, 那該變量將同閉包一起保留於內存
* 
* https://www.cnblogs.com/cjvae/p/9786598.html
* https://blog.csdn.net/coder_vader/article/details/78839686
*/

// 作爲一個獨立環境使用
(function () {
	
})();

// 封裝函數
function fun() {
	return {
		a: 0
		b: function () {
			return ++this.a;
		}
	}
}
console.log(fun().b()); // 1
console.log(fun().b()); // 1

// 面向對象開發
var obj = {
	a: 0,
	b: function () {
		return ++this.a;
	}
};

console.log(obj.b()); // 1
console.log(obj.b()); // 2

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章