浅克隆、深克隆、事件冒泡、事件委托

一、浅克隆、深克隆


(1)浅克隆:


案例:


Js部分:function clone(){  var student1={};


      for(var key in student){


          student1[key]=student[key]


        }


      return student1;


  }


      var student1=clone();


  console.log(student1);


  student.name='rose';


  console.log(student1);


(2)深克隆:


案例:


Js部分:function clone(obj){


var student1=obj instanceof Array?[]:{};


for(var key in obj){


      if(obj[key] instanceof Object){             


    student1[key]=clone(obj[key]);


}else{


    student1[key]=obj[key];


}



  return student1;


}


var student1=clone(student);


console.log(student1);


student.friend[0]='Tom';console.log(student1);


二、事件流内联事件:


.onclick    事件监听:


.addEventListener('事件',function(){})


三、事件冒泡和事件捕获案例:


Body部分:


<div class="box">


        <div class="list">


            <div class="li"><div>


            </div>


  </div>


Js部分:


var box=document.querySelector('.box'); 


  var list=document.querySelector('.list');


    var li=document.querySelector('.li');


  box.addEventListener('click',function(){            alert('我是box');        },true)   


        list.addEventListener('click',function(){            alert('我是list');        },true)         


  li.addEventListener('click',function(){            alert('我是li');        },true)


//事件冒泡:从内到外依次触发//事件捕获:从外到内依次触发(添加true)


四、事件委托


事件委托:可以简单第理解为将子集的事件委托给父级来处理案例:


Body部分


<div class="boxs">


<button class="btn1">按钮1</button>


<button class="btn2">按钮2</button>


</div>


js部分


var box=document.querySelector('.boxs');             


  box.addEventListener('click',function(event){               


  var target=event.target;               


  console.log(target.innerHTML);               


  })                                     


var btn=document.createElement('button');


btn.innerHTML='按钮3';btn.className='btn3';


document.querySelector('div').appendChild(btn);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容