javsscript闭包的一种使用场景--沙箱
2024-09-03 03:33:42
//沙箱:模块化,沙箱是一个隔离的环境,最大的好处就是避免全局变量的污染.
var model = (function () {//一个匿名的立即执行函数
var price = 900;//这是一个model局部的变量,外界无法访问,无法修改
//有效的保障了属性的安全性
return {
pay: function (money) {
if (money < price) {
console.log("您的消费不够,请继继续消费");
} else {
console.log("恭喜成为VIP");
}
}
}
})();
console.log(model.pay(800));//"消费不够.." undefined
model.pay(1000);//"VIP..."
//千万注意不用打印,pay函数本身就有输出,如果在console.log中
//会输出函数的返回值. //在面向对象中使用沙箱
//应用场景:在页面初始化的时候要用到f1,f2,f3三个函数
//这三个函数不想让外界访问,需要把这单个方法声明成为构造函数
//内部私有的变量
var songManger = (function(){
function f1(){
console.log("函数f1的方法");
}
function f2(){
console.log("函数f2的方法");
}
function f3(){
console.log("函数f4的方法");
}
function SongManger(){//声明一个构造函数
}
SongManger.prototype={//在原型对象上扩展方法
init:function(){
f1();
f2();
f3();
}
};
// return SongManger;//注意这个返回的是构造函数,使用之前需要先实例化一下
return new SongManger;//把构造函数返回,实例化一下,这样外边就不需要实例化了
})();
songManger.init();//
最新文章
- Linq 那些事儿
- session生命周期(一)
- User interface
- js回顾1
- delphi XE5皮肤的使用
- 3DS MAX调慢摄像机动画
- Java -- 子类使用super调用父类的方法A,A 调用了方法B,子类也override方法B,那么super.A()最终调用到了子类的B方法
- Linux学习 : 裸板调试 之 使用MMU
- KindEditor图片批量上传
- iScroll 优化
- jquery节点操作
- javascript笔记06:类的创建
- 应用程序中小红点设置方法 (ios)
- 玩转Firefox侧栏
- CSS——inline-block属性
- 自定义控件之--组合控件(titlebar)
- NHibernate教程(20)——二级缓存(上)
- [IOI2014]holiday假期(分治+主席树)
- [err]default argument given for parameter 3 of &#39;***&#39;
- C#中导出EXCEL服务器端不用安装OFFICE