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技巧
Dec 06 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
Sep 06 Javascript
javascript匿名函数实例分析
Nov 18 Javascript
js实现无缝滚动特效
Dec 20 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
Feb 02 Javascript
javascript 中select框触发事件过程的分析
Aug 01 Javascript
JSONP原理及应用实例详解
Sep 13 Javascript
vue中使用props传值的方法
May 08 Javascript
vue中使用vee-validator完成表单校验方案
Nov 01 Javascript
vue组件开发之slider组件使用详解
Aug 21 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
Oct 01 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提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
Python检测QQ在线状态的方法
2015/05/09 Python
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
Python读取表格类型文件代码实例
2020/02/17 Python
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
C语言笔试题回忆
2015/04/02 面试题
生产主管岗位职责
2013/11/10 职场文书
数字化校园建设方案
2014/05/03 职场文书
奶茶店创业计划书
2014/08/14 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
小学优秀班主任材料
2014/12/17 职场文书
煤矿安全保证书
2015/02/27 职场文书
大二学年个人总结
2015/03/03 职场文书
新闻稿怎么写
2015/07/18 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
Java后台生成图片的完整步骤
2021/08/04 Java/Android