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

被折叠的 条评论
为什么被折叠?



