房子装修 - 装饰者模式
·
Yin灏
装饰者模式:在不改变原对象的基础上,通过对其进行包装拓展(添加属性和方法)使原有对象可以满足用户用户的更复杂需求。
装饰已有的功能对象
// 装饰者
var decorator = function(input, fn) {
// 获取事件源
var input = document.getElementById(input) {
// 若事件源已经绑定了事件
if(typeof input.onclick === 'function') {
// 缓存事件源原有回调函数
var oldClickFn = input.onclick;
input.onclick = function() {
oldClickFn();
fn();
}
} else {
input.onclick = fn;
}
}
}
为输入框添砖加瓦
decorator("tel_input", function () {
// ...
});
decorator("name_input", function () {
// ...
});
decorator("adress_input", function () {
// ...
});