设计模式之迭代器模式(Iterator)

迭代器模式是一种相对简单的模式,简单到很多时候我们都不认为它是一种设计模式。目前的绝大部分语言都内置了迭代器。

比如:JavaScript 的 Array.prototype.forEach

jQuery里一个非常有名的迭代器就是 $.each 方法,通过each我们可以传入额外的function,然后来对所有的item项进行迭代操作,例如:

1
2
3
4
5
6
7
$.each( [1, 2, 3], function( i, n ){
	console.log( '当前下标为: '+ i,'当前值为:' + n );
});

// 下标: 0 当前值:1
// 下标: 1 当前值:2
// 下标: 2 当前值:3

设计模式之代理模式(Proxy)

代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。

代理模式的关键是,当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象。替身对象对请求做出一些处理之后,再把请求转交给本体对象。

定义

代理,顾名思义就是帮助别人做事,GoF对代理模式的定义如下:

代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。

设计模式之单例模式(Singleton)

在 JavaScript 开发中,单例模式的用途非常广泛。比如,当我们单击登录按钮的时候,页面中会出现一个登录浮窗,而这个登录浮窗是唯一的,无论单击多少次登录按钮

Kindle 书籍源下载推荐

近日重拾公司所发kindle,之前一度觉得手机阅读完全可以替代这个产品,但手机看pdf文件,还是不够舒适,虽然是无背光版的,但在上下班路上的

typeof与instanceof的区别

typeof和instanceof都可以用来判断变量,它们的用法有很大区别: typeof:返回一个变量的基本类型,检测的是基本数据类型 ins

Javascript数组常见问题

1、删除数组里指定的某个元素 1 2 3 4 5 6 7 8 9 10 11 12 13 14 var arr = [3,2,3,3,5,3], val = 3; var removeElement = function(arr, elm) { for (var i = 0; i < arr.length; i++) { if (arr[i] == elm) { arr.splice(i, 1); i--; } } return arr; }; console.log(removeElement(arr, val)); // [2, 5] 注

Javascript基础之数组

简介 数组是编程语言中应用最广泛的存储结构,在 ECMAScript 中数组是非常常用的引用类型。很有必要将数组的内容捋一遍,加深印象。 数组属性 constructor 表示引用数组对象的

Javascript 面向对象编程详解

Javascript是一种基于对象的语言,秉承一切皆对象的理念。 但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有cla

div嵌套水平垂直居中方法

总结当前知道的对div嵌套标签水平垂直居中方法,如果还有新的方法,请不吝赐教哦。好,下面开始列举代码咯。 首先给需要实现水平垂直居中的两个di

圣杯布局和双飞翼布局详解

事实上,圣杯布局其实和双飞翼布局是一回事。它们实现的都是三栏布局,两边的盒子宽度固定,中间盒子自适应,也就是我们常说的 固-比-固 布局。它们实

三只小猪与邋遢大王

每天晚上讲给儿子的睡前故事总是在我儿时的动画片里搜索与混搭,《邋遢大王》故事里经典的智慧锁,断断续续记得一段,不得已,又陪儿子看了一遍动画片

如何自定义Atom主题

使用Atom有段时间,一直使用别人的主题,想着自己也制作一款主题,便再 官网 上研究一番: aotm主题,分为两种,一种是界面主题,一种是语法主题