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 07 Javascript
DLL+ ActiveX控件+WEB页面调用例子
Aug 07 Javascript
jQuery EasyUI API 中文文档 - Panel面板
Sep 30 Javascript
javascript实用方法总结
Feb 06 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
May 13 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
Nov 25 Javascript
微信小程序 slider 详解及实例代码
Jan 10 Javascript
JavaScript实现图片切换效果
Aug 12 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
Mar 09 Javascript
JavaScript设计模式之构造函数模式实例教程
Jul 02 Javascript
Vue-cli3简单使用(图文步骤)
Apr 30 Javascript
JavaScript实现显示和隐藏图片
Apr 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和ACCESS写聊天室(九)
2006/10/09 PHP
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
ajax 的post方法实例(带循环)
2011/07/04 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
php的扩展写法总结
2019/05/14 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
浅析AngularJS中的生命周期和延迟处理
2015/06/18 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
Vue组件开发初探
2017/02/14 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
Python统计文本词汇出现次数的实例代码
2020/02/27 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
大学生职业生涯规划范文
2014/01/22 职场文书
迟到检讨书5000字
2014/01/31 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
通知书大全
2015/04/27 职场文书
获奖感言一句话
2015/07/31 职场文书
canvas 中如何实现物体的框选
2022/08/05 Javascript
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS