JS沙箱模式实例分析


Posted in Javascript onSeptember 04, 2017

本文实例讲述了JS沙箱模式。分享给大家供大家参考,具体如下:

//SandBox(['module1,module2'],function(box){});
/*
*
*
* @function
* @constructor
* @param []  array   模块名数组
* @param callback function 回调函数
* 功能:新建一块可用于模块运行的环境(沙箱),自己的代码放在回调函数里,且不会对其他的个人沙箱造成影响
和js模块模式配合的天衣无缝
*
* */
function SandBox() {
  //私有的变量
  var args = Array.prototype.slice.call(arguments),
      callback = args.pop(),
      //模块可以作为一个数组传递,或作为单独的参数传递
      modules = (args && typeof args[0] == "string") ? args : args[0];
  //确保该函数作为构造函数调用
  if (!(this instanceof SandBox)) {
    return new SandBox(modules,callback);
  }
  //不指定模块名和“*”都表示“使用所有模块”
  if (!modules || modules[0] === "*") {
    for(value in SandBox.modules){
      modules.push(value);
    }
  }
  //初始化所需要的模块(将想要的模块方法添加到box对象上)
    for (var i = 0; i < modules.length; i++) {
      SandBox.modules[modules[i]](this);
    }
  //自己的代码写在回调函数里,this就是拥有指定模块功能的box对象
  callback(this);
}
 SandBox.prototype={
   name:"My Application",
   version:"1.0",
   getName:function() {
     return this.name;
   }
 };
/*
* 预定义的模块
*
* */
SandBox.modules={};
SandBox.modules.event=function(box){
  //私有属性
  var xx="xxx";
  //公共方法
  box.attachEvent=function(){
    console.log("modules:event------API:attachEvent")
  };
  box.dettachEvent=function(){
  };
}
SandBox.modules.ajax=function(box) {
  var xx = "xxx";
  box.makeRequest = function () {
  };
  box.getResponse = function () {
  };
}
SandBox(['event','ajax'],function(box){
  box.attachEvent();
})

运行效果截图:

JS沙箱模式实例分析

JS沙箱模式实例分析

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery 无限级联菜单案例分享
Mar 26 Javascript
jQuery功能函数详解
Feb 01 Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 Javascript
jQuery多个版本和其他js库冲突的解决方法
Aug 11 Javascript
利用node.js制作命令行工具方法教程(一)
Jun 22 Javascript
VUE实现一个分页组件的示例
Sep 13 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
Jul 19 Javascript
LayUI数据接口返回实体封装的例子
Sep 12 Javascript
在node环境下parse Smarty模板的使用示例代码
Nov 15 Javascript
微信小程序使用 vant Dialog组件的正确方式
Feb 21 Javascript
js中addEventListener()与removeEventListener()用法案例分析
Mar 02 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 #Javascript
JS实现颜色的10进制转化成rgba格式的方法
Sep 04 #Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
Sep 04 #Javascript
JS实现匀加速与匀减速运动的方法示例
Sep 04 #Javascript
node-sass安装失败的原因与解决方法
Sep 04 #Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
Sep 04 #Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
Sep 04 #Javascript
You might like
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
php函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
python获取mp3文件信息的方法
2015/06/15 Python
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
Python实现括号匹配方法详解
2020/02/10 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
python如何编写win程序
2020/06/08 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
C语言基础笔试题
2013/04/27 面试题
合作协议书范本
2014/10/25 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
李强感恩观后感
2015/06/17 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书