JS沙箱模式实例分析

 更新时间:2017年09月04日 12:06:28   作者:蓝精灵依米  
这篇文章主要介绍了JS沙箱模式,结合实例形式分析了JS沙箱模式的原理与实现方法,需要的朋友可以参考下

本文实例讲述了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();
})

运行效果截图:

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

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

相关文章

  • p5.js入门教程和基本形状绘制

    p5.js入门教程和基本形状绘制

    本篇文章主要介绍了p5.js入门教程之简介和基本形状绘制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Bootstrap打造一个左侧折叠菜单的系统模板(二)

    Bootstrap打造一个左侧折叠菜单的系统模板(二)

    这篇文章主要介绍了Bootstrap打造一个左侧折叠菜单的系统模板(二)的相关资料,需要的朋友可以参考下
    2016-05-05
  • 详解ES6 扩展运算符的使用与注意事项

    详解ES6 扩展运算符的使用与注意事项

    扩展运算符 (spread syntax) 是 ES6 提供的一种非常便捷的新语法,给我们操作数组和对象带来了非常大的便利,我在很多文章中也提到了这个语法。但是其实扩展运算符的用法还是比较多比较杂的,我用一篇文章来做一下总结,梳理一下扩展运算的语法和使用细节。
    2020-11-11
  • JavaScript 中有关数组对象的方法(详解)

    JavaScript 中有关数组对象的方法(详解)

    下面小编就为大家带来一篇JavaScript 中有关数组对象的方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • JavaScript canvas绘制渐变颜色的矩形

    JavaScript canvas绘制渐变颜色的矩形

    这篇文章主要为大家详细介绍了JavaScript canvas绘制渐变颜色的矩形,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • js中arguments的用法(实例讲解)

    js中arguments的用法(实例讲解)

    这篇文章主要是对js中arguments的用法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • js实现多图左右切换功能

    js实现多图左右切换功能

    这篇文章主要介绍了js实现多图左右切换功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • webpack打包进度展示以及美化教程

    webpack打包进度展示以及美化教程

    webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler),下面这篇文章主要给大家介绍了关于webpack打包进度展示以及美化的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • 40行原生js代码实现前端简易路由

    40行原生js代码实现前端简易路由

    路由就是指随着浏览器地址栏的变化,展示给用户的页面也不相同,下面这篇文章主要给大家介绍了关于如何通过40行原生js代码实现前端简易路由的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • js检测用户输入密码强度

    js检测用户输入密码强度

    这篇文章主要为大家详细介绍了js如何实现检测用户输入密码强度,从四个方面检测用户输入的密码的强度的,感兴趣的小伙伴们可以参考一下
    2015-10-10

最新评论