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 通过json自动生成Dom的代码
Apr 01 Javascript
jQuery实现的类flash菜单效果代码
May 17 Javascript
jquery 实现窗口的最大化不论什么情况
Sep 03 Javascript
form表单只提交数据而不进行页面跳转的解决方案
Sep 18 Javascript
javascript判断chrome浏览器的方法
Mar 26 Javascript
jquery实现上下左右滑动的方法
Feb 09 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
loading动画特效小结
Jan 22 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
Sep 05 Javascript
JavaScript变量基本使用方法实例分析
Nov 15 Javascript
js+canvas实现纸牌游戏
Mar 16 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
详解基于 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下封装较好的数字分页方法
2010/11/23 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
如何更好的编写js async函数
2018/05/13 Javascript
详解React 元素渲染
2020/07/07 Javascript
Python二分法搜索算法实例分析
2015/05/11 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
Pandas的数据过滤实现
2021/01/15 Python
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
全陪导游欢迎词
2014/01/17 职场文书
大学班长的职责
2014/01/27 职场文书
自行车广告词大全
2014/03/21 职场文书
环保倡议书怎么写
2014/05/16 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
慰问信模板
2015/02/14 职场文书
雾霾停课通知
2015/04/24 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
php实例化对象的实例方法
2021/11/17 PHP
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python