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 相关文章推荐
javascript 检测浏览器类型和版本的代码
Sep 15 Javascript
基于jQuery替换table中的内容并显示进度条的代码
Aug 02 Javascript
javascript通过class来获取元素实现代码
Feb 20 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
Jul 18 Javascript
解析URI与URL之间的区别与联系
Nov 22 Javascript
js实现图片在未加载完成前显示加载中字样
Sep 03 Javascript
超级给力的JavaScript的React框架入门教程
Jul 02 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
Aug 13 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
vue 之 .sync 修饰符示例详解
Apr 21 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
Sep 15 Javascript
JS highcharts实现动态曲线代码示例
Oct 16 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页面缓存方法小结
2015/01/10 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
PHP7.0版本备注
2015/07/23 PHP
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
python与caffe改变通道顺序的方法
2018/08/04 Python
python中的tcp示例详解
2018/12/09 Python
Python当中的array数组对象实例详解
2019/06/12 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
业务主管岗位职责范本
2013/12/25 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
购房意向书
2014/04/01 职场文书
高中生家长寄语大全
2014/04/03 职场文书
李开复演讲稿
2014/05/24 职场文书
红色旅游心得体会
2014/09/03 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
python基础详解之if循环语句
2021/04/24 Python
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript