js 编写规范


Posted in Javascript onMarch 03, 2010

在一个项目中大量使用js,工程项目与网站开发有一些不一样,在我接触的工程项目中普遍使用js 不够多,大部分客户端可做事,交给了服务端,而且在使用js时不够规范,很容易造成代码难以阅读、内存泄漏问题,不注意js 输写方式。而在网站开发中(尤其一些大网站,js输出的非常漂亮、完美无论使用jquery,还是prototype 框架,还是不用框架,都有自己良好一套东东可用)
js输写最好还是可以面向对象方式 用类方向进行包装 js输写两种方式 闭包 原型
闭包:(借用的一个例子)

function Person(firstName, lastName, age) 
{ 
//私有变量: 
var _firstName = firstName; 
var _lastName = lastName; 
//公共变量: 
this.age = age; 
//方法: 
this.getName = function() 
{ 
return(firstName + " " + lastName); 
}; 
this.SayHello = function() 
{ 
alert("Hello, I'm " + firstName + " " + lastName); 
}; 
}; 
var BillGates = new Person("Bill", "Gates", 53);

原型:(借用的一个例子)
//定义构造函数 
function Person(name) 
{ 
this.name = name; //在构造函数中定义成员 
}; 
//方法定义到构造函数的prototype上 
Person.prototype.SayHello = function() 
{ 
alert("Hello, I'm " + this.name); 
}; 
//子类构造函数 
function Employee(name, salary) 
{ 
Person.call(this, name); //调用上层构造函数 
this.salary = salary; //扩展的成员 
}; 
//子类构造函数首先需要用上层构造函数来建立prototype对象,实现继承的概念 
Employee.prototype = new Person() //只需要其prototype的方法,此对象的成员没有任何意义! 
//子类方法也定义到构造函数之上 
Employee.prototype.ShowMeTheMoney = function() 
{ 
alert(this.name + " $" + this.salary); 
}; 
var BillGates = new Person("Bill Gates"); 
BillGates.SayHello(); 
var SteveJobs = new Employee("Steve Jobs", 1234); 
SteveJobs.SayHello();

这两种方法各有优缺点,第一种看起来更像一个类 每个对象设置一份方法有很大浪费,而且资源回收不利,第二种方法,看起来不是很漂亮,可性能很好(不过如果你使用prototype框架,就可以完美解决结构与性能问题了。)

实际在使用jquery 还是prototype问题上,我的一点点体会是 jquery使用闭包方式,而prototype当然原型,jquery更加适合对单个对象操作,而prototype更适合做一些客户端控件。实际我更喜欢在项目中使用jquery 而网站上更关注prototype

Javascript 相关文章推荐
使用CSS和jQuery模拟select并附提交后取得数据的代码
Oct 18 Javascript
jquery动画效果学习笔记(8种效果)
Nov 13 Javascript
基于javascript实现图片滑动效果
May 07 Javascript
利用jQuery实现一个简单的表格上下翻页效果
Mar 14 Javascript
CodeMirror js代码加亮使用总结
Mar 25 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
JavaScript DOM元素常见操作详解【添加、删除、修改等】
May 09 Javascript
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
快速解决angularJS中用post方法时后台拿不到值的问题
Aug 14 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
Jul 06 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
Oct 21 Javascript
用vue 实现手机触屏滑动功能
May 28 Javascript
jquery validation插件表单验证的一个例子
Mar 03 #Javascript
Jquery 实现Tab效果 思路是js思路
Mar 02 #Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
Mar 02 #Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
Mar 02 #Javascript
jQuery对象和DOM对象的相互转化实现代码
Mar 02 #Javascript
Javascript 自定义类型方法小结
Mar 02 #Javascript
Javascript Cookie读写删除操作的函数
Mar 02 #Javascript
You might like
php zend解密软件绿色版测试可用
2008/04/14 PHP
简单PHP上传图片、删除图片实现代码
2010/05/12 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
php中的ini配置原理详解
2014/10/14 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
使用Python编写Linux系统守护进程实例
2015/02/03 Python
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python 处理数据的实例详解
2017/08/10 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
Python实现批量压缩图片
2018/01/25 Python
python 中字典嵌套列表的方法
2018/07/03 Python
pandas重新生成索引的方法
2018/11/06 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
Python使用configparser库读取配置文件
2020/02/22 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
市场安全管理制度
2014/01/26 职场文书
《草原》教学反思
2014/02/15 职场文书
技校毕业生自荐书
2014/05/23 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
如何利用python创作字符画
2022/06/25 Python