编写更加稳定/可读的javascript代码
来源:互联网 发布:亚马逊大还是淘宝大 编辑:程序博客网 时间:2024/05/22 02:14
分离你的javascript代码
(function (window, namespace) {var $ = window.jQuery;window[namespace] = function (targetId, textId) {//一个尝试复用的获取位置的"组件"var $target = $('#' + targetId),//按钮$text = $('#' + textId);//显示文本$target.on('click', function () {$text.html('获取中');var data = '北京市';//balabala很多逻辑,伪代码,获取得到位置中if (data) {$text.html(data);} else$text.html('获取失败');});}})(window, 'linkFly');
(function (window, namespace) {var $ = window.jQuery,$target,$text,states= ['获取中', '获取失败'];function done(address) {//获取位置成功$text.html(address);}function fail() {$text.html(states[1]);}function checkData(data) {//检查位置信息是否正确return !!data;}function loadPosition() {var data = '北京市';//获取位置中if (checkData(data)) {done(data);} elsefail();}var init = function () {$target.on('click', function () {$text.html(states[0]);loadPosition();});};window[namespace] = function (targetId, textId) {$target = $('#' + targetId);$text = $('#' + textId);initData();setData();}})(window, 'linkFly');
函数不应该过分依赖外部环境
(function (window, namespace) {var $ = window.jQuery;//检查位置信息是否正确function checkData(data) {return !!data;}//获取位置中function loadPosition(done, fail) {var data = '北京市';//获取位置中if (checkData(data)) {done(data);} elsefail();}window[namespace] = function (targetId, textId) { var $target = $('#' + targetId),$text = $('#' + textId);var states = ['获取中', '获取失败'];$target.on('click', function () {$text.html(states[0]);loadPosition(function (address) {//获取位置成功$text.html(address);}, function () {//获取位置失败$text.html(states[1]);});});}})(window, 'linkFly');
语义化和复用
(function (window, namespace) {var $ = window.jQuery;function checkData(data) {return !!data;}function loadPosition(done, fail) {var data = '北京市';//获取位置中if (checkData(data)) {done(data);} elsefail();}window[namespace] = function (targetId, textId) {var $target = $('#' + targetId),$text = $('#' + textId),changeEnum = { LOADING: '获取中', FAIL: '获取失败' },changeStateText = function (text) {$text.html(text);};$target.on('click', function () {changeStateText(changeEnum.LOADING);loadPosition(function (address) {changeStateText(address);}, function () {changeStateText(changeEnum.FAIL);});});}})(window, 'linkFly');
组件应该关注逻辑,行为只是封装
(function (window, namespace) {var Gps = {load: function (fone, fail) {var data = '北京市';//获取位置伪代码this.check(data) ?done(data, Gps.state.OK) :fail(Gps.state.FAIL);},check: function (data) {return !!data;},state: { OK: 1, FAIL: 0 }};window[namespace] = Gps;})(window, 'Gps');
形成自己风格的代码
(function () {//第一种,曝露了_name属性var Demo = function () {if (!(this instanceof Demo))return new Demo();this._name = 'linkFly';};Demo.prototype.getName = function () {return this._name;}//第二种,多一层闭包意味内存消耗更大,但是屏蔽了_name属性var Demo = function () {var name = 'linkFly';return {getName: function () {return name;}}}});
(function () {var names = [];return function (name) {addName(name);}function addName(name) {if (!~names.indexOf(name))//如果存在则不添加names.push(name);console.log(names);// ["linkFly"]}}())('linkFly');
(function () {var key = 'linkFly',cache = { 'linkFly': 'http://www.cnblogs.com/silin6/' },value;//&&到底key && cache && cache[key] && (value = cache[key]);//来个ifif (key && cache && cache[key])value = cache[key];})();
0 0
- 编写更加稳定/可读的javascript代码
- 编写更加稳定、可读性强的JavaScript代码
- 编写更加稳定、可读性强的JavaScript代码
- 编写更加稳定、可读性强的JavaScript代码
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术 读后感
- 读<<编写可读代码的艺术>>总结
- 读书笔记-编写可读代码的艺术[上]
- 读书笔记-编写可读代码的艺术[中]
- 读书笔记-编写可读代码的艺术[下]
- 编写可读代码的艺术 读后感(一)
- 编写可读代码的艺术 读后感(二)
- 第三节 elasticsearch搭建
- Date转String / String 转Date
- gps数据处理
- **[Android 获取文件大小](http://write.blog.csdn.net/mdeditor)**
- 常见的版本控制管理工具
- 编写更加稳定/可读的javascript代码
- Oracle批量创建同义词
- 面向对象思想
- php字符串函数总汇
- sql server 2012(windows server 2012 ) ogg 11.2.1.0.2
- avascript的坑(二)
- java后台证件号15转18位
- 回文数
- Java 8里面lambda的最佳实践