0%

在程序设计中,常常遇到要实现一种功能有多种方案可以选择,比如一个压缩文件的程序,既可以选择 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
(树) (图)
阅读全文 »

队列

队列是一种先进先出 的数据结构,类似于排队点餐,排在第一个的就可以第一个点餐,而后面的只能按照队列顺序等待执行。

阅读全文 »

由于昨天看了几个排序,又想到 JavaScript 常用Array.sort进行排序,所以搜索了一下 JavaScript 中 sort 函数使用了那种排序方法。

阅读全文 »