UI层的松耦合

在web开发中,用户界面(UI)是由三个彼此隔离又相互作用的层定义的。

  • HTML用来定义页面的数据和语义。
  • CSS用来给页面添加样式,创建视觉特征。
  • JavaScript用来给页面添加行为,使其具有交互性。

如果两个组件耦合太紧,则说明一个组件和另一个组件直接相关,这样的话,修改一个组件的逻辑,那么另外一个组件的逻辑也需要修改。

如果你能够做到修改一个组件而不需要修改其他的组件时,你就做到了松耦合。松耦合对于代码可维护性来说至关重要。

避免使用全局变量

在浏览器中,window对象往往重载并等同于全局对象,因此任何在全局作用域中声明的变量和函数都是window对象的属性,比如:

var color = "red";function sayColor(){alert(color);
}console.log(window.color);             //"red"
console.log(typeof window.sayColor);  //"function"

color和sayColor()两者都是window对象的属性,尽管我们并没有显示地执行给window对象挂载属性的操作。

当脚本中的全局变量和全局函数越来越多时,发生命名冲突的概率也随之增高,即很可能无意间就使用了一个已经声明了的变量。

一个依赖于全局变量的函数即是深耦合于上下文环境之中。如果环境发生改变,函数很可能就失效了。

单全局变量方式

“单全局变量”的意思是所创建的这个唯一全局对象名是独一无二的(不会和内置API产生冲突),并将你所有的功能代码都挂载到这个全局对象上。因此每个可能的全局变量都成为你唯一全局对象的属性,从而不会创建多个全局变量。

<!--

作者:纤锐
出处:http://www.cnblogs.com/beginner2014
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。谢谢合作。

-->

转载于:https://www.cnblogs.com/beginner2014/p/5485462.html

《编写可维护的JavaScript》——JavaScript编码规范(七)相关推荐

  1. JavaScript的编码规范

    JavaScript 文件引用 JavaScript 程序应该尽量放在 .js 的文件中,需要调用的时候在 HTML 中以 < script src="filename.js" ...

  2. 浅谈 JavaScript 编程语言的编码规范--转载

    原文:http://www.ibm.com/developerworks/cn/web/1008_wangdd_jscodingrule/ 对于熟悉 C/C++ 或 Java 语言的工程师来说,Jav ...

  3. 浅谈 JavaScript 编程语言的编码规范

    转自:http://www.ibm.com/developerworks/cn/web/1008_wangdd_jscodingrule/?ca=drs-tp4608 developerWorks 中 ...

  4. 网易前端JavaScript编码规范

    在多年开发邮箱webmail过程中,网易邮箱前端团队积累了不少心得体会,我们开发了很多基础js库,实现了大量前端效果组件,开发了成熟的opoa框架以及api组件,在此向大家做一些分享.今天想先和大家聊 ...

  5. java入职学习一之编码规范

    编码规范 好的编码规范可以尽可能的减少一个软件的维护成本,并且几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护. 好的编码规范可以改善软件的可读性,可以让开发人员尽快而彻底地理解新的 ...

  6. 企业级JAVA编码规范

    好的编码规范可以尽可能的减少一个软件的维护成本,并且几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护: 好的编码规范可以改善软件的可读性,可以让开发人员尽快而彻底地理解新的代码: 好 ...

  7. 项目开发中的编码规范

    1.规范存在的意义: 好的编码规范可以尽可能的减少一个软件的维护成本 , 并且几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护: 好的编码规范可以改善软件的可读性,可以让开发人员尽快 ...

  8. 软件工程之高质量代码(编码规范)

    软件工程之高质量代码(编码规范) 软件编码规范是与特定语言相关的描写如何编写代码的规则集合. 编码规范的目的 是提高编码质量,避免不必要的程序错误,增强程序代码的可读性.可重用性和可移植性. Pyth ...

  9. JavaScript编码规范[百度]

    JavaScript编码规范 1 前言 2 代码风格 2.1 文件 2.2 结构 2.2.1 缩进 2.2.2 空格 2.2.3 换行 2.2.4 语句 2.3 命名 2.4 注释 2.4.1 单行注 ...

  10. 前端编码规范之JavaScript

    上次浅谈了下关于CSS的编码规范,大部分童鞋持赞同意见,仍存在一些童鞋不太理解这些规范的意义. 如果是个人或者小作坊开发,其实这些所谓的编码规范也没啥意思,因为大家写好的代码直接就给扔到网上去了,很少 ...

最新文章

  1. 我的VC++——对话框中显示GIF格式的图片
  2. 想学python有什么用-python学来有什么用
  3. LR录制脚本中文乱码问题
  4. linux mariadb 升级,linux mariadb
  5. Java多对多关系示例
  6. OpenCV--求取图像多轮廓质心,并于图像上绘制显示质心及其坐标
  7. 王思聪被限制高消费后,官方终于回应:已有解决方案
  8. EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行
  9. 机器学习导论(五)-神经元网络
  10. C语言-除法和取模运算正负号问题
  11. 禅与维修摩托车的艺术_罗伯特-M-波西格
  12. 基于深度学习的自然场景文字识别系统研究 faster-RCNN + CRNN (一)
  13. windows主机和虚拟机设置桥接
  14. 【ESP】乐鑫系列物联网芯片
  15. 最新解决方法This template did not produce a Java class or an interface
  16. 【C++编程语言】严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3848 具有类型“const MyCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool
  17. 嵌入式毕设分享 STM32 wifi照明控制系统 - 智能路灯(毕设分享)
  18. Linux入门到精通
  19. sql server 更新表,每天的数据分固定批次设置批次号sql
  20. HUOJ 1394 Minimum Inversion Number

热门文章

  1. ios sinaweibo 客户端(二)
  2. Hadoop在业界的使用情况
  3. ecplise反编译插件
  4. 【Vegas原创】控制文件损坏,使用trace文件恢复DB
  5. [RHEL5企业级Linux服务攻略]--第11季 NIS服务全攻略
  6. linux 下 pip 安装教程6,在CentOS下安装pip
  7. Android 学习JNI,用JAVA调用C
  8. 拓扑链表c语言,数据结构2.2 链表的实现
  9. T - hiho字符串 HihoCoder - 1485 (..map的使用把)
  10. Linux服务器沦陷为肉鸡的全过程实录