JavaScript23

一、计时器

css样式

<button class='btn1'>停止一次性定时器</button>

<button class='btn2'>停止永久性定时器</button>

script 一次性定时器

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

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

function show(){

    console.log('这是一次性定时器');

}//一次性定时器

script 永久性定时器

var timer=setTimeout(show,3000);

btn1.onclick=function(){

    clearTimeout(timer);

}

function print(){

    console.log('这是永久性定时器');

}

var times=setInterval(print,1000);

btn2.onclick=function(){

  clearTimeout(times);

}

二、instanceof

var arr=[1,2,3,4,5];

var obj={name:'jack'};

console.log(arr instanceof Array);

console.log(obj instanceof Array);

三、深度克隆

var student={

    name:'jack',

    age:18,

    friend:['lily','lucy']

}

function clone(obj){

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

    for(var key in obj){

        if(obj[key] instanceof Object){

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

        }else{

            newObj[key]=obj[key];

        }

    }

    return newObj;

}

         

var newObj=clone(student);

student.friend[0]='rose';

console.log(student.friend[0]);

console.log(newObj.friend[0]);

四、事件委托

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

div

<div class='boxs'>

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

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

</div>

script 第一种写法

var btn1 = document.querySelector(".btn1");

var btn2 = document.querySelector(".btn2");

btn1.addEventListener("click",function(){

    console.log(this.innerHTML)

})

btn2.addEventListener("click",function(){

    console.log(this.innerHTML)

})

script 第二种写法

var btnArray = document.querySelectorAll("button");

for(var i = 0;i<btnArray.length;i++){

    btnArray[i].addEventListener("click",function(){

        console.log(this.innerHTML)

    })

}

第三种:使用事件委托的方式实现

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

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

    var target=event.target;

    console.log(target.innerHTML);

})

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

推荐阅读更多精彩内容

  • // 浅克隆:只能克隆原始类型,克隆不了引用类型 // var obj={ // n...
    _z王箭阅读 232评论 0 0
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,110评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,881评论 2 17
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,350评论 0 3
  • 你清楚地知道,你无法通过躺在床上熬夜玩儿手机挣到理想的薪水,你也无法通过不着边际的空想获得想要的一切。 生活从来不...
    超级活跃王阅读 265评论 3 2