這是裝飾者模式。。話說有點蒙var decorator = function ( input , fn ) { // 獲取事件源
var input = document.getElementById(input); // 若事件源是已經(jīng)綁定的事件
if ( typeof input.onclick === 'function' ) { // 緩存事件原有的回調(diào)函數(shù)
var oldClickFn = input.onclick; // 為事件源添加新的事件
input.onclick = function () { // 事件源原有回調(diào)函數(shù)
oldClickFn(); // 執(zhí)行事件源新增回調(diào)函數(shù)
fn();
}
} else { // 事件源未綁定事件,直接為事件源添加新增回調(diào)函數(shù)
input.onclick = fn;
}
}; // 電話輸入框功能裝飾
decorator( 'tel_input' , function () { document.getElementById( 'tel_demo_text' ).style.display = 'none' ;
} )這函數(shù)怎么理解呢?為什么執(zhí)行了oldClickFn();還要執(zhí)行fn();?
書上的demo,這里應(yīng)該怎么理解呢?
幕布斯7119047
2018-09-14 14:09:38