适配器模式:将一个类(对象)的接口(方法或者属性)转化成另外一个接口,以满足用户需求,使类(对象)之间接口的不兼容问题通过适配器得以解决。
生活中的适配器:国内的充电插头和港版的充电插头是不一样的,为了实现他们可以互通,一般在插座和插头间连接一个转换器(适配器)。
// A 为一个第三方库
var A = A || {}
A.g = function(id) {
return document.getElementById(id)
}
A.on = function(id, type, fn) {
var dom = typeof id === 'string' ? this.g(id) : id
if (dom.addEventListener) {
dom.addEventListener(type, fn, false)
} else if (dom.attachEvent) {
dom.attachEvent('on' + type, fn)
} else {
dom['on' + type] = fn
}
}
// 使用jquery替代A库
A.g = function(id) {
return $(id).get(0)
}
A.on = function(id, type, fn) {
var dom = typeof id === 'string' ? $('#' + id): $(id)
dom.on(type, fn)
}