重寫本身如何減小判斷?其實我也是學習別人的代碼,才明白的。學習
看看下面的方法,方法名在內部都從新指向了處理代碼,具體代碼:spa
//兼容的綁定事件方法 function addHandler(target, eventType, handler) { //重寫本身 if (target.addEventListener) { //DOM2 Events addHandler = function (target, eventType, handler) { target.addEventListener(eventType, handler, false); }; } else { //IE addHandler = function (target, eventType, handler) { target.attachEvent("on" + eventType, handler); }; } //關鍵,調用新方法,重寫本身,減小判斷,第二次調用時,使用新方法,沒有判斷 addHandler(target, eventType, handler); } function removeHandler(target, eventType, handler) { //o//重寫本身 if (target.removeEventListener) { //DOM2 Events removeHandler = function (target, eventType, handler) { target.addEventListener(eventType, handler, false); }; } else { //IE removeHandler = function (target, eventType, handler) { target.detachEvent("on" + eventType, handler); }; } //關鍵,調用新方法,重寫本身,減小判斷,第二次調用時,使用新方法,沒有判斷 removeHandler(target, eventType, handler); }
通常人的寫法是這樣:.net
function addHandler(target, eventType, handler) { if (target.addEventListener) { //DOM2 Events target.addEventListener(eventType, handler, false); } else { //IE target.attachEvent("on" + eventType, handler); } }
雖然多了幾行代碼,但思想徹底不同,通常人寫的,每次綁定必而後判斷,可人家寫的就只有一次判斷!!!只有一次!!!code
看完上面的代碼,你是否有一種想法(^_!),不不是想幹壞事啊?後果本身承擔啊!就當我什麼都沒說過。blog
若是你有其餘想法,不要忘記告訴我啊。事件
出處:https://blog.csdn.net/xuexiaodong009/article/details/51832056rem