编写可维护的JS 06
7.事件处理
//典型用法
function handlerClick(event){
var popup = document.getElementById('popup');
popup.style.left = event.clientX+'px';
popup.style.top = event.clientY+'px';
}
1.隔离应用逻辑
隔离应用逻辑 /*
上述代码只用到了 clientX/clientY 两个属性。 但是却将event事件整个传入 。
*/
// 1 隔离应用逻辑 /*
上述例子中 操作popup的left/right值 算是一种应用逻辑,而这个应用逻辑可能其他地方也会操作 既然其他地方也会操作这个应用逻辑。我们就将它独立出来 。 */ //拆分应用逻辑
var myPopup = { handler:function(event){ this.showpopup(event);
}, showpopup:function(event){
var popup = document.getElementById('popup');
popup.style.left = event.clientX+'px';
popup.style.top = event.clientY+'px';
}
}; //调用
var obtn1=document.getElementById('btn1'); obtn1.addEventListener('click',function(event){ myPopup.handler(event); },false);
应用逻辑有可能被多处使用,如果正常写可能会被复制很多份,将应用逻辑和事件处理拆分开
2. 不要分发事件对象
/*
在1里面 只需要用到clientX 和clientY 但是却将event时间对象穿进去。 好的api 依赖是透明的。 showpopup方法只需要2个数据 而不是一个event 传递一个event进去反而将事情变得复杂。 */
//重写以上例子
var myPopup2 = {
handler:function(event){
event.preventDefault();
event.stopPropagation(); this.showpopup(event.clientX,event.clientY);
}, showpopup:function(x,y){ var popup = document.getElementById('popup');
popup.style.left = x+'px';
popup.style.top = y+'px';
}
};
//调用
var obtn2=document.getElementById('btn1'); obtn1.addEventListener('click',function(event){ myPopup2.handler(event.clientX,event.clientY); },false);
编写可维护的JS 06的更多相关文章
- 前端小白想要编写可维护的js
我是一名前端小白,之前没写过多少代码,心里没有代码质量这个概念,人人都说代码是团队的产物,应该将代码写规范,但是我对具体什么样的代码是可维护的是茫然的. 我没写过多少代码,本来好多东西就不咋会,每次给 ...
- 编写可维护的js代码
在工作中,制定一套统一的编码风格,可以提高开发效率,维护起来的也要容易很多,也能避免一些不必要的错误出现. 项目中常用的检查编码风格的工具JSLint.JSHint.JSCS.ESLint,,在这呢, ...
- 编写可维护的JS 05
5.UI层的松耦合 松耦合定义 每个组件尽量独立,修改一个不影响其他的组件 将Js从css中抽离 不要使用css表达式,因为浏览器会以高频率重复计算css表达式,严重影响性能,IE9不支持表达式 将C ...
- 编写可维护的JS 01
1.编程风格 缩进层级 使用制表符进行缩进 2个/4个空格缩进 语句结尾 不省略分号 行的长度 不超过80个字符 换行 在运算符后面换行 空行 在以下场景中添加: 方法之间 在方法中局部变量与第一条语 ...
- 编写可维护的JS 04
4.变量.函数和运算符 变量 变量声明提前,单var 函数声明 先声明fn再执行 函数声明不应出现在语句块中 函数调用间隔 函数名与左括号间无间隔 立即调用函数 (fuction(){}) 严格模式 ...
- 编写可维护的JS 03
3.语句和表达式 所有语句都应当使用花括号 if else语句 for 循环 while 循环 do...while try...catch...finally 花括号对齐方式 左括号在第一行语句末尾 ...
- 编写可维护的JS 02
2.注释 单行 //单行注释 多行 /* 多行注释 */ /** * 多行注释 * */ 使用注释 使用注释的原则是让代码更清晰 难于理解的代码 难于理解的代码都应添加注释 可能被误认为错误的代码 应 ...
- 如何使用 require.js ,实现js文件的异步加载,避免网页失去响应,管理模块之间的依赖性,便于代码的编写和维护。
一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载.下面的网页代 ...
- 如何编写可维护的面向对象JavaScript代码
能够写出可维护的面向对象JavaScript代 码不仅可以节约金钱,还能让你很受欢迎.不信?有可能你自己或者其他什么人有一天会回来重用你的代码.如果能尽量让这个经历不那么痛苦,就可以节省不少时 间.地 ...
随机推荐
- floodlight 学习(一)
其实这个控制器应该没有多少人用了吧,一年多都没更新了,鉴于最近无论如何都要用这个,将学习笔记贴出来吧. 1.FloodlightProvider(Dev) 1.1简介:FloodlightProvid ...
- AlertView点击确定后再执行后面的代码
AlertView的show方法执行后,后面的代码会继续运行,而不会等待用户按键结束再走,这样,如果把弹出的代码写在一个BOOL函数里,没等用户确认直接返回NO就惨了,解决方法: - (BOOL)be ...
- SQL函数介绍
http://www.cnblogs.com/moss_tan_jun/archive/2010/08/23/1806861.html 一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用 ...
- 共享器 TS ERROR WINDOWS-FAILED 错误解决方法
问题:TS ERROR WINDOWS-FAILED 原因:微软操作系统自动更新补丁(KB956572)与终端机软件有冲突. 解决方法: .打开“开始菜单”: .打开“控制面板”: .打开“添加/删 ...
- 在 PL/SQL Developer 中执行SQL文件的方法
打开 command Window SQL> @'D:\My Documents\Downloads\bde_chk_cbo.sql'; 整个路径及文件两边要有单引号哦!
- MySqL触发器以及常用转换函数注意事项
1,触发器(http://www.cnblogs.com/zzwlovegfj/archive/2012/07/04/2576989.html) 1.MYSQL中触发器中不能对本表进行 i ...
- 加密传输SSL协议5_Hash Function
怎么对一个大的文件进行签名,因为文件比较大,非对称签名很慢.那么想,我能把这个大的文件通过一种函数变换,变成一个和源文件唯一对应的的小的文件吗?答案是可以的. Hash Function 这里任何的文 ...
- 将控制台程序做成windows服务
一:添加windows服务 二:修改XXXInstaller1的StartType=Automatic,修改ProcessInstaller1的Account=LocalSystem 三:在progr ...
- iOS定位与地图
定位: 手机上定位的实现主要有三种方式:基站(附近基站的位置),wifi(所连接路由器的位置),卫星(最准确,也最耗能). iOS的定位功能主要是由CLLocationManager类来完成的.这个类 ...
- 在VC6.0下如何调用Delphi5.0开发的进程内COM
因为本人的语言水平很差,考大学时150的总分,我考了个60分.外语也是,初中及格过一次,会考及格过一次.其它的时间好像从没有及格过.所以我不写文章,因我一百字的文章给我写,至少要出八九个错别字.哈哈… ...