題目描述原文中,下列相關代碼部分提現柯里化函數的 提前返回和延遲執行 兩大特點,并且這樣代碼中只需要判斷一次瀏覽器類型。我對于代碼的理解在于,每次實際調用addEvent的時候,代碼會進行一次函數執行,然后if(window.addEventListener) { ... } 這個內容還會進行一次瀏覽器判斷。感覺我的想法和作者的想法相悖了,所以我想問一下,為什么if(window.addEventListener)在實際應用中只執行一次。即使下次調用addEvent的時候,也不會進行瀏覽器判斷題目來源及自己的思路這是我在掘金上看到的一個案例,代碼在后面作者:小興nice鏈接:https://juejin.im/post/5b8350...來源:掘金著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。相關代碼var addEvent = (function() { if(window.addEventListener) { // 只判斷一次瀏覽器類型 return function(el, type, fn, capture) {
el.addEventListener(type, function(e) {
fn.call(el, e);
}, capture);
}
}else { return function(ele, type, fn) {
el.attachEvent('on' + type, function(e) {
fn.call(el, e);
})
}
}
})()
柯里化(curring)的實際運用
BIG陽
2018-09-08 09:54:34