Skip to content

Commit b8da51a

Browse files
committed
修改第三章
1 parent 051d5f7 commit b8da51a

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

three-chapter/three.js

+45
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,51 @@ var renderFriendList = timeChunk(array,function(n){
526526

527527
renderFriendList();
528528

529+
//惰性加载函数
530+
//函数缺点没吃调用都会执行if 条件分支,开销较大
531+
var addEvent = function(elem,type,handler){
532+
if(window.addEventListener){
533+
return elem.addEventListener(type,handler,false);
534+
}
535+
if(window.attachEvent){
536+
return elem.attachEvent('on'+type,handler)
537+
}
538+
}
539+
540+
//嗅探浏览器的操作提前到代码加载的时候,在代码加载的时候就立刻进行一次判断
541+
//缺点 从头到尾都没有使用过 addEvent 函数,这样看
542+
// 来,前一次的浏览器嗅探就是完全多余的操作,而且这也会稍稍延长页面 ready 的时间
543+
var addEvent = (function(){
544+
if(window.addEventListener){
545+
return function(elem,type,handler){
546+
elem.addEventListener(type,handler,false);
547+
}
548+
}
549+
if(window.attachEvent){
550+
return function(elem,type,handler){
551+
elem.attachEvent('on'+type,handler)
552+
}
553+
}
529554

555+
})()
556+
557+
//惰性函数
558+
var addEvent = function(elem,type,handler){
559+
if(window.addEventListener){
560+
//重写 addEvent
561+
addEvent = function(elem,type,handler){
562+
elem.addEventListener(type,handler,false)
563+
}
564+
}else if(window.attachEvent){
565+
addEvent = function(elem,type,handler){
566+
elem.addEventListener('on'+type,handler);
567+
}
568+
}
569+
570+
addEvent(elem,type,handler)
571+
}
530572

573+
var div = document.getElementById('div1')
574+
addEvent(div,'click',() => {console.log(1)})
575+
addEvent(div, 'click', () => {console.log(2)})
531576

0 commit comments

Comments
 (0)