// 闭包,就是在 函数内部定义另外的函数,可以通过对象调用这些函数,而这些函数可以引用
	//外层函数体中的临时变量,如name ,就可以间接的保持这些临时变量,而且只能通过这些函数
	//才能使用,及时临时变量已经消失,但是这些函数却还是能够引用到。
	
	// 闭包会造成垃圾回收难题,且性能不佳,以弃用。 改用 原型。
		function Person(name){
			var _firstname=name;//私有变量 
			this.name=name;//公共变量
			this.sayHello=function(){
				alert(this.name);
			}
		}
		
		var billgates=new Person("billgates");
		alert(billgates.name);//billgates  ,可以访问
		alert(billgates._firstname+"名字");// undefined ,私有变量不可以访问
		billgates.sayHello();//即使参数name 已经消亡,也可通过引用person 的name 来获得,
							// 间接把临时变量给保留了下来,随billgates消亡而消亡
原文:http://www.cnblogs.com/zhangchenglzhao/p/3953645.html