1. 程式人生 > >忍者祕籍---第五章 閉包

忍者祕籍---第五章 閉包

閉包概念:一個一個函式在建立時允許自身函式訪問自身函式之外的變數時所建立的作用域。即是在小的作用域內允許訪問大作用域內的資訊。
{
XXX
//XXX能訪問到YYY中
{
YYY
//YYY能夠訪問到XXX
}
}
這就是閉包

閉包的幾個性質:
1,內部函式的引數是包含在閉包中的。
2,作用域之外的所有變數,即使是函式宣告之後的那些宣告,也都包含在閉包中。(也就是可以提前引用在函式之後宣告的變數。)
3,相同作用域內,不能在宣告這個變數之前提前引用他。

建立私有變數

function outerfunction(){
		 	var outer=10;
		 	 this.getouter=function (){
		 	 	return outer;
		 	 };
		 	}

		 	var outer=new outerfunction();
		 	console.log(outer.outer);-------undefined,因為這裡是使用構造器建立了一個outer物件,無法訪問到構造器的內部變數
		 	console.log(outer.getouter());-------10 使用閉包就可以訪問到構造器中的變數