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

代理模式是一种非常有意义的模式,在生活中可以找到很多代理模式的场景,比如,明星都有经纪人作为代理,如果详情明星办一场商业演出,那么只能联系他的经纪人,经纪人会把细节谈好,再把合同交给明星。

阅读全文 »

在程序设计中,常常遇到要实现一种功能有多种方案可以选择,比如一个压缩文件的程序,既可以选择 zip 算法,也可以选择 gzip 算法。

策略模式的定义:定义一系列算法,把他们一个个封装起来,并且使他们可以相互转换

阅读全文 »

单例模式的定义是:保证一个类仅有一个实例,并提供一个访问它的全局访问点

单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池,全局缓存,浏览器中的 window 对象,在 JavaScript 开发中,单例模式的用途同样十分广泛,比如,当我们单击登录按钮的时候,页面会出现一个登录浮窗,而这个登录浮窗是唯一的,无论单击多少次登录按钮,这个浮窗都只会被创建一次,那么这个登录浮窗就适合用单例模式来创建。

阅读全文 »

this

众所周知在 JavaScript 中的 this 的指向是基于函数执行的环境动态绑定的,而并非是声明时的环境。

this 指向

在除去不常用的witheval具体到实际应用中,this的指向可以分为以下四种:

  1. 作为对象的方法调用
  2. 作为普通函数调用
  3. 构造器调用
  4. Function.prototype.call 和 Function.prototype.apply 调用
    阅读全文 »

字典

字典是一种以键 - 值对应形势储存的数据结构,就像手机里面的电话本一样,只需要记录名字和对应的手机号码,下次拨打的时候只需要查找名字就可以了。这里键就是手机号的名字,而真正拨打的手机号是查找到的值。

在 ES6 中新增了一个原生的 Map 数据结构,参考 ES6 的 Map 数据结构实现一下。(JavaScript 也在发展)

阅读全文 »

1
2
3
4
5
6
7
8
研究了半天怎么画图,发现上传hexo没有图,好心酸

1 1
/ \ / \
2 3 2 3
/ \ / \ / \ / \
4 5 6 7 4 5 6
(树) (图)
阅读全文 »
0%