JS 闭包与立即执行函数

本文通过一个示例详细介绍了JavaScript中的闭包概念,展示了如何利用匿名立即执行函数封装车速的设置、获取及增减操作。示例中,`CarSpeed`对象对外暴露了四个方法,允许外界交互车速。闭包在此处确保了`speed`变量的私有性,同时体现了JavaScript函数作为一等公民的特性。

---------------JS 闭包与立即执行函数 demo--------------------- 

//js file

var CarSpeed = 

(function(){
 var speed = 0;
 console.log("Run once without calling.");
 
 function setSpeed( sp ){
	speed = sp;
 }
 function getSpeed(){
	return speed;
 }
 function speedUp(){
	speed++;
 }
 function speedDown(){
	speed--;
 }
 
 return {
	setSpeed: setSpeed,
	getSpeed: getSpeed,
	speedUp: speedUp,
	speedDown: speedDown
 }
 
})();


上面封装了车速的闭包,而且这个函数是匿名(赋值给全局变量CarSpeed)立即执行的,它内部实现了车速的设置与获取,下面为调用::

CarSpeed.setSpeed(80)

a = CarSpeed.getSpeed() //80
Car.speedUp()
b = CarSpeed.getSpeed() //81
Car.speedDown()
c = CarSpeed.getSpeed() //80

console.log( "a="+a+",b="+b+",c="+c );//输出结果 a=80,b=81,c=80

//+++++++++++++++++++++++++

 ( function(){} )() 是匿名函数的标准形式.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值