JavaScript加强之匿名函数(闭包)

/**
 * 闭包:在函数1中写一个函数2,并在函数1外调用函数2
 *    范式:()()
 * 	  第一个参数是一个函数,函数中的参数为形参
 *    第二个括号是实参
 *    
 *    以下形式的好处:
 *    	1.可以手动地指定哪些函数需要公开化或私有化
 *    	2.在匿名函数中声明的属性,在外部是访问不到的
 */
/*  这种是一种闭包,但是不规范
function test1(){
	function test2(){
		alert("hahah");
	}
}
test2();
*/
(function(window){
	var i = 20;
	function A(){//私有的
		alert("A");
		/*	因为在下面有window.A = A;这样意味着A对象可在外部调用,同样A中返回的json对象也可以在外部调用
		 *	多个对象需要返回如果window.A = A;  window.B = B这种形式写也可以
		 *	以下json形式也可以
		 */
		return {
			C:C,
			D:D,
			I:i
		};
	}
	function B(){//私有的
		alert("B");
	}
	function C(){//公开的
		alert("C");
	}
	function D(){//公开的
		alert("D");
	}
	window.A = A;//通过该方式可以让一个函数称为一个公开的函数
})(window);
var json = window.A();
json.C();
json.D();
json.I = 10;//可以改变匿名函数中的变量的值
alert(json.I);//10

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值