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 相关文章推荐
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
May 14 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
Aug 14 Javascript
JS定义回车事件(实现代码)
Jul 08 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
Jan 27 Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 Javascript
node.js发送邮件email的方法详解
Jan 06 Javascript
jquery实现放大镜简洁代码(推荐)
Jun 08 jQuery
Vue自定义指令详解
Jul 28 Javascript
详解Chai.js断言库API中文文档
Jan 31 Javascript
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
OpenLayers加载缩放控件使用方法详解
Sep 25 Javascript
如何构建一个Vue插件并生成npm包
Oct 26 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
Chrome Web App开发小结
2014/09/04 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
js实现批量删除功能
2020/08/27 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
Python 装饰器使用详解
2017/07/29 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
Python判断telnet通不通的实例
2019/01/26 Python
详解django2中关于时间处理策略
2019/03/06 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
python设置环境变量的作用整理
2020/02/17 Python
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
给排水专业应届生求职信
2013/10/12 职场文书
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
篝火晚会策划方案
2014/05/16 职场文书
2014年库房工作总结
2014/11/26 职场文书
平安家庭事迹材料
2014/12/20 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书