//在不改变原有对象的基础上,通过包装扩展使其能增加更多方法和属性
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;
}
//...
}
//给id为aa的元素添加新的事件
decorator('aa', function(){
//...
})
林秀栋的技术博客