JavaScript 观察者模式

观察者(observer)模式又叫订阅/发布(subscriber/publisher)模式。浏览器的事件监听就是这种模式的实例。订阅者 A 订阅发布者 B 的特定动作,当发布者 B 的特定动作发生后,订阅者 A 便会收到通知,然后订阅者 A 就可以进行相应的处理。

More

JavaScript 单例模式

单例模式保证一个特定类只有一个实例对象。也就是说多次用同一个类来创建对象,得到的都是同样一个对象。严格意义上,JavaScript 没有类,只有对象,对象之间永远不会完全相等,除非它们是同一个对象,所以我们创建的每一个对象都可以看做是单例。比如,我们可以用对象字面量来创建单例对象。

More

ready 方法的实现

很多时候,我们需要在页面加载完成后执行某些方法。我们首先可能会想到 window.onload 事件,但是,该事件会等到 dom、script、css、image 以及 iframe 等所有资源都加载完后才会触发,这么多资源都加载完是很耗时的,所以,比较好的办法是只在 dom 加载完后就执行这些方法。

More

理解 call + bind

JavaScript 提供了 call、apply、bind 等三个方法,来切换/固定函数调用时其内部 this 的指向。它们的第一个参数都是函数内 this 所要指向的对象,如果该参数设为 null 或 undefined,则指向全局对象(浏览器环境下,指 window)。这三个方法的基本用法在 理解 JavaScript 中 this 一文已经做了介绍,这里就不再赘述。下面更深入地讨论一下 call 和 bind 方法。

More

几个典型的 JavaScript 函数

ECMAScript 中,没有独立存在的函数,所有的函数都是依附于某个对象。isNaN()、parseInt() 等看起来独立的函数,实际上它们都属于全局对象。客户端 JavaScript 中,全局对象就是 window 对象。讲函数之前,先来说说 JavaScript 对象。

More

JavaScript 变量

JavaScript 变量分为两种:【基本类型】和【引用类型】。6 种数据类型里,除了对象是引用类型变量,其他的都是基本类型变量。引用类型的变量由多个值构成。当然了,每种基本类型(null 和 undefined 除外)都有与其对应的引用类型,在必要时候,基本类型变量也会自动转换成对应引用类型变量,然后再继续运算。

More