JS装饰器模式
装饰器模式:在不改变原对象的基础上,通过对其进行包装拓展(添加属性或者方法),保护原有功能的完整性
需要条件:原对象,新内容(属性/方法)
个人理解:重新实现一下,原对象的方法,在方法内容,先执行原对象的方法,再执行新内容
示例代码如下:
//装饰者 /* input:原对象 fn:新内容(属性或方法) */ var decorator = function (input,fn) { //获取事件源 var input = document.getElementById(input); //判断事件源,是否绑定某一事件 if(typeof input.onclick === 'function'){ //缓存事件源的原有回调函数 var oldClick = input.onclick; //为事件源定义新的回调函数 input.onclick = function () { //事件源,原有回调函数 oldClick(); //执行事件源新增回调函数 fn(); } } }
posted on 2017-04-27 16:27 CodeArtist 阅读(272) 评论(0) 编辑 收藏 举报