全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JS设计模式之单例模式(一)

命名空间

单例模式是JavaScript中最常见的一种模式,通过这种模式可以为我们提供一个命名空间,例如jQuery库的命名空间为jQuery或$。命名空间的使用是为了让代码更加整洁,在多人协作开发的情况下,不同的人定义的变量很有可能重复,此时就需要使用命名空间来约束每个人定义的变量,使相同名称的变量放在不同的命名空间中,避免相互干扰。例如:

// A程序员的命名空间
var A = {
  get: function(id){
    return document.getElementById(id);
  }
  css: function(id,key,value){
    get(id).style[key] = value;
  }
}
// B程序员的命名空间
var B = {
  get: function(className){
    return document.getElementByClassName(className)[0];
  }
  css: function(className,key,value){
    get(className).style[key] = value;
  }
}

A、B两个命名空间中都有一个get方法和一个css方法,用于元素获取和元素样式修改,不同的是A是通过id来获取元素,而B是通过class来获取元素,通过命名空间,可以使这些相同名称的方法共存,使用时指定相应的命名空间即可。

模块化

JavaScript中单例模式除了定义命名空间之外,还可用于管理代码库的各个功能模块。例如:

google.dom.addClass       // 添加元素类
google.dom.append        // 插入元素
google.event.stopPropagation  // 阻止事件冒泡
google.event.preventDefault   // 阻止默认行为
google.string.trim       // 去除字符串首尾空格
google.string.encodeHTML    // 将字符串进行HTML编码

以上各个模块都位于google命名空间下,每个模块都有属于自己的方法,使用时只需按照需求调用特定功能模块下对应的方法即可。

常量

JavaScript中并没有final、static这类关键字用来定义常量,但JavaScript非常灵活,通过常量只能访问不能修改这一特点,我们可以将变量保存在函数内部,并且只提供获取变量的方法,不提供设置变量的方法,通过闭包的方式使函数执行一次并返回相应的访问方法对象,最后将这个对象放在全局空间中作为常量单例对象使用。例如:

var Color = (function(){
  // 私有变量
  var color = {
    'RED': '#ff0000',
    'YELLOW': '#ffff00',
    'BLUE': '#0000ff'
  }
  // 返回访问方法对象
  return {
    // 常量获取方法
    get: function(name){
      return color[name] ? color[name] : null;
    }
  }
})();

var color = Color.get('BLUE');
console.log(color);  // #0000ff

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# JS  # 设计模式  # 单例模式  # JavaScript中的设计模式 单例模式  # JavaScript设计模式---单例模式详解【四种基本形式】  # JS 设计模式之:单例模式定义与实现方法浅析  # javascript设计模式 – 单例模式原理与应用实例分析  # js设计模式之单例模式原理与用法详解  # JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能  # JavaScript设计模式之单例模式  # 放在  # 自己的  # 的人  # 的是  # 这一  # 都有  # 每个人  # 只需  # 我们可以  # 这类  # 时就  # 还可  # 后将  # 提供一个  # 只提供  # 中都  # 很有可能  # 最常见  # 大家多多  # 有一个 


相关文章: 定制建站哪家更专业可靠?推荐榜单揭晓  建站之星代理平台如何选择最佳方案?  如何选择服务器才能高效搭建专属网站?  如何撰写建站申请书?关键要点有哪些?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何快速搭建二级域名独立网站?  网站制作服务平台,有什么网站可以发布本地服务信息?  ,制作一个手机app网站要多少钱?  设计网站制作公司有哪些,制作网页教程?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  建站主机与服务器功能差异如何区分?  如何在局域网内绑定自建网站域名?  C++中引用和指针有什么区别?(代码说明)  南京网站制作费用,南京远驱官方网站?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  建站主机类型有哪些?如何正确选型  Bpmn 2.0的XML文件怎么画流程图  如何快速搭建高效服务器建站系统?  广东企业建站网站优化与SEO营销核心策略指南  高防服务器:AI智能防御DDoS攻击与数据安全保障  常州自助建站工具推荐:低成本搭建与模板选择技巧  微信小程序 input输入框控件详解及实例(多种示例)  建站主机与虚拟主机有何区别?如何选择最优方案?  如何解决VPS建站LNMP环境配置常见问题?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  如何用狗爹虚拟主机快速搭建网站?  如何快速搭建安全的FTP站点?  怀化网站制作公司,怀化新生儿上户网上办理流程?  Swift中swift中的switch 语句  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何用IIS7快速搭建并优化网站站点?  网站制作公司排行榜,抖音怎样做个人官方网站  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  如何选择香港主机高效搭建外贸独立站?  宝塔新建站点为何无法访问?如何排查?  再谈Python中的字符串与字符编码(推荐)  建站之星如何快速生成多端适配网站?  网站制作说明怎么写,简述网页设计的流程并说明原因?  建站之星安装提示数据库无法连接如何解决?  上海网站制作开发公司,上海买房比较好的网站有哪些?  网站制作话术技巧,网站推广做的好怎么话术?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  如何在香港免费服务器上快速搭建网站?  如何批量查询域名的建站时间记录?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  如何在IIS7中新建站点?详细步骤解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。