编写高质量代码——JavaScript篇

来源:互联网 发布:淘宝美工的前景 编辑:程序博客网 时间:2024/06/05 14:43

一、避免团队合作时的js冲突
使用大写的GLOBAL作为全局变量的变量名。在不同的匿名函数中,根据功能生命一个不同的命名空间,每个匿名函数中GLOBAL对象的属性都不要直接挂在GLOBAL对象上,而是挂在此匿名函数的命名空间下。
二、JavaScript分层
JavaScript分为三层,从下往上以此是base层、common层和page层。base层的功能是给common层和page层提供接口,common层的功能是给page层提供组件。
base层可封装判断浏览器类型的方法,例如Firefox不支持document.all,可以用来判断浏览器类型。总而言之,base层的接口可以分成三块,一块用来操作DOM,一块操作事件,还有一块用来模仿其他语言提供原生JavaScript不提供的函数。
三、面向对象编程
面向过程编程:描述一个个“动作”。将程序分成“数据”和“处理函数”两部分,程序以“处理函数”为核心,如果要执行什么操作,就将“数据”传给相应的“处理函数”,返回我们需要的结果。面向过程的缺点:
(1)数据和处理函数没有直接的关联。
(2)数据和处理函数都暴露在同一作用域内。
面向对象编程:描述一个个“物件”,对象由属性和行为两部分组成。
在不影响扩展性的前提下,尽量将属性和行为设为私有。OO包括OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象的程序设计)。决定聚合和耦合成都的事OOA和OOD,OOA和OOD是工作在架构层面的。
函数在JavaScript中既可以当做普通函数使用,也可以当做类来使用。作为函数时用动词来命名,作为类时用名词来命名,类名首字母大写。
写在原型中的行为,可以被所有实例所共享,实例化的时候,并不会在实例的内存中再复制一份。而写在类的行为,实例化的时候会在每个实例里复制一份。把行为写在原型里可以减少内存消耗,没有特殊原因,尽量把行为写在原型里。写在原型中的行为一定是共有的,而且无法访问私有属性。
JavaScript中继承是要分别继承构造函数和原型中的属性和行为的。
function的用法:作为函数存在直接使用“()”进行调用,作为类的构造函数存在使用new调用。作为函数的function,其this指向的是window对象,而作为类构造函数的function,其this指向的是实例对象。要实现继承的效果,可以通过call或apply方法实现,父类.call(this, name)。
在JavaScript中,复制语句会用传值和传址两种不同的方式进行赋值。如果是数值型、布尔型、字符型等基本数据类型,在进行赋值时会将数据赋值一份;如果是数组、hash对象等复杂数据类型(数组、hash对象可包括简单类型数据),在进行赋值时会直接用内存地址赋值。让复杂数据类型也可以传值的做法一是,遍历数组或hash对象,将数组或hash对象这种复杂的数据拆分成一个个简单数据分别赋值。做法二,new SomeFunction,子类.prototype.constructor = 子类。因为子类.prototype=new 父类(),子类.prototype.constructor指向了父类,把它纠正重新指回子类。

Other Tips:
1、用hash对象传参。
2、自定义属性是个非常有用的技巧,我们不但可以用它来保存普通字符串,还可以用它保存其他类型(数组、hash对象)的数据。
3、好的维护性:代码的松耦合,高度模块化,良好的注释,代码的弹性,按照规范写代码。

0 0
原创粉丝点击