- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 迭代器模式
迭代器模式就是提供一种接口,用户可以按照某种顺序访问数据,但是不需要了解数据的内部表示和具体操作。jquery中的each和对象遍历的for in都是一种迭代器模式,不过这种迭代模式有个不好的地方是,他是从第一个元素一直迭代到最后一个元素的,即使他提供了停下来的功能,下次迭代的时候。还是会从头开始迭代,所以说他是无记忆的,如果我们需要在一个循环之内和之外按序访问某个数据集,那就需要一个有记忆功
2016-09-30 17:37:30 298
原创 访问者模式
访问者模式一般来说是把多种类型对象的共同操作抽象起来,放到一个函数里,然后以对象为参数,在函数里统一执行操作。类似于c++的多态,以子类指针或者引用为函数参数,然后根据传进来的对象类型,执行他所对应的方法。这个前提是,多个对象都具有相同的操作,但是不同的对象具体执行的代码可以不同。而在js里,是弱类型的,只要某个对象具有相应的方法就能被执行,这个传入的对象可以是函数参数或者this,c++里传入的
2016-09-30 16:19:06 342
原创 js中的this
this的知识是js中比较重要的一环。不过总的来说,抓住根本,就会发现this得知识就会清晰明了。this的本质是,首先this代表的是当前对象,一般在函数中使用,如果在全局使用就是window,如果在函数中使用,我们只要记住他核心的一点就行,那就是,哪个对象调用了这个函数,那么这个函数中this就是那个对象。不管这个函数被传了多少次,到达什么地方。this的用法大概有几种。第一种比较
2016-09-29 17:41:23 300
原创 原型模式
原型模式主要是为了代码重用。问题在于在子类的指针指向父类的可重用数据时,应该怎么处理,因为共享意味着互相影响。子类修改了共享的数据,也会影响父类。所以这里需要用一个中间的,空白的函数作中继。这样不仅可以重用父类的代码和数据,还可以重写父类的的数据和方法而不影响父类。function Parent(name){ this.name = name;}Parent.prot
2016-09-20 18:27:00 349
原创 代理模式
代理模式主要利用代理,代理持有其他多方的对象,然后负责多个对象的通信和联系。function a() {this.talk = function() {console.log('hello b i am sorry');}}function b() {this.talk = function() {console.log('hello a i am so
2016-09-19 19:34:28 254
原创 外观模式
外观模式主要是封装内在的实现,对外暴露接口,让用户不需要关心具体的实现细节。function bindEvent(obj,type,callback){ if(window.attachEvent){ bindEvent =function(obj,type,callback){ obj.attachEvent('on'
2016-09-19 19:30:40 275
原创 享元模式
享元模式主要是分析应用程序的数据,分出可共享的部分和不可共享的部分,对于可共享的部分,我们可以放到一个地方单独维护。让多个对象共享,其他的数据则每个对象自己维护。//学生可共享的信息function infoShare(student,schoolName) {this.identity = student;this.schoolName = schoolName; }
2016-09-19 18:25:35 333
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人