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 相关文章推荐
判断是否安装flash player及当前版本的JS代码
Aug 08 Javascript
Jquery跳到页面指定位置的方法
May 12 Javascript
JavaScript中伪协议 javascript:使用探讨
Jul 18 Javascript
javascript删除元素节点removeChild()用法实例
May 26 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
Jul 18 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
Aug 24 Javascript
js+html制作简单日历的方法
Jun 27 Javascript
用js将long型数据转换成date型或datetime型的实例
Jul 03 Javascript
使用mint-ui开发项目的一些心得(分享)
Sep 07 Javascript
详解nuxt sass全局变量(公共scss解决方案)
Jun 27 Javascript
Vue商品控件与购物车联动效果的实例代码
Jul 21 Javascript
js实现3D照片墙效果
Oct 28 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
Syphon 使用方法
2021/03/03 冲泡冲煮
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
PHP 图片上传代码
2011/09/13 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
Python中文件操作简明介绍
2015/04/13 Python
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
Python的Django框架下管理站点的基本方法
2015/07/17 Python
Python实现的knn算法示例
2018/06/14 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
管理站站长岗位职责
2013/11/27 职场文书
回门宴新郎答谢词
2014/01/12 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书