您的位置:首页 > Web前端 > JavaScript

javsscript闭包的一种使用场景--沙箱

2016-10-20 00:00 120 查看
//沙箱:模块化,沙箱是一个隔离的环境,最大的好处就是避免全局变量的污染.
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();//
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 闭包 沙箱
相关文章推荐