模仿JQuery 的添加多个事件的原理

  var jquery=function(dom){
         


         var obj={
         
           
            ready:function(fn){
            
              if(typeof dom.onload=="function"){ //如果存在 先执行新的函数  在执行旧的函数  否则直接执行呗
               
                 
                var old=dom.onload;

               
               dom.onload=function(){
                 

                 fn();  //新的

                 old(); //旧的
               }
                

              
              }

              else{
                
                dom.onload=fn;
              
              }
            
            
            }
         
         
         }
           
           return  obj;
                 
      
      }

      window.onload=function(){
      
        alert('其实我执行了');
      }


     jquery(window).ready(function(){
         
         alert(123);


        });

//说到底原理上还是覆盖了

/*
只是第一次执行函数的的时候 old=dom.onload 是一个空函数 它肯定也执行了 就是 新的fn 和一个空函数

第二次执行函数的时候 第一次传入的函数fn 赋值给了old 然后执行了 新的fn 和上次的fn

 原理就是新的会覆盖以前的 onload 只会执行一次最新的onload  只不过把前两次定义的函数都包在一个onload里面了

所以呈现出一种不会覆盖的假象

妙哉

如果在定义一个  就把之前的包在里面  形成递归的原理!!!!

大化小  小化无!!  

*/

猜你喜欢

转载自www.cnblogs.com/liveoutfun/p/9418146.html
今日推荐