美文网首页
浅克隆、深克隆、事件流、事件冒泡、事件捕获、事件委托

浅克隆、深克隆、事件流、事件冒泡、事件捕获、事件委托

作者: 闫梓璇 | 来源:发表于2018-05-29 22:07 被阅读0次

一、浅克隆、深克隆

(1)浅克隆:

案例:

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)深克隆:

案例:

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(){})

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

<div class="box">

        <div class="list">

            <div class="li"><div>

            </div>

  </div>

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)

四、事件委托

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

<div class="boxs">

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

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

</div>

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);

相关文章

网友评论

      本文标题:浅克隆、深克隆、事件流、事件冒泡、事件捕获、事件委托

      本文链接:https://www.haomeiwen.com/subject/qtrzjftx.html