//沙箱:模块化,沙箱是一个隔离的环境,最大的好处就是避免全局变量的污染.
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();//

  

最新文章

  1. Linq 那些事儿
  2. session生命周期(一)
  3. User interface
  4. js回顾1
  5. delphi XE5皮肤的使用
  6. 3DS MAX调慢摄像机动画
  7. Java -- 子类使用super调用父类的方法A,A 调用了方法B,子类也override方法B,那么super.A()最终调用到了子类的B方法
  8. Linux学习 : 裸板调试 之 使用MMU
  9. KindEditor图片批量上传
  10. iScroll 优化
  11. jquery节点操作
  12. javascript笔记06:类的创建
  13. 应用程序中小红点设置方法 (ios)
  14. 玩转Firefox侧栏
  15. CSS——inline-block属性
  16. 自定义控件之--组合控件(titlebar)
  17. NHibernate教程(20)——二级缓存(上)
  18. [IOI2014]holiday假期(分治+主席树)
  19. [err]default argument given for parameter 3 of &#39;***&#39;
  20. C#中导出EXCEL服务器端不用安装OFFICE

热门文章

  1. 常用命令--find
  2. python第一个问题
  3. tomcat在cmd中部署到系统服务
  4. Centos 进入recovery模式,单用户模式
  5. .net core mvc model填充过滤器
  6. shell选项和参数
  7. 循环结构select 语法
  8. vue-router中的router-link的active-class
  9. python-django_rest_framework中的request/Response
  10. Python的return语句中使用条件判断