深浅拷贝,防抖节流,继承多态


深浅拷贝

浅拷贝是拷贝的地址

var obj={};		//obj=0x100;
a=obj;			//a=0x100;

深拷贝是拷贝每一个值

var arr=[1,2];	//arr=0x100;
var b=[];		//b=0x200;
b[0]=arr[0];	//b[0]=1;
b[1]=arr[1];	//b[1]=2;

防抖

当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次;

如果设定时间到来之前,又触发了事件,就重新开始延时。

    var ipt = document.querySelectorAll("input");
    //让元素在键盘抬起的时候,向服务器发起请求,请求相关的数据
    var timerid = null;
    ipt[0].addEventListener('keyup', function () {
        //清除定时器
        if (timerid) {
            clearTimeout(timerid);
        }
        timerid = setTimeout(function () {
            console.log('向服务端请求数据.....ing');
        }, 3000);
    })

节流

指在 n 秒内连续触发事件只执行一次函数。

/**
 * @desc 函数节流
 * @param callback 函数
 * @param time 延迟执行毫秒数
 */
function throttle(callback,time){
    //假设:假设用户在既定时间内没有输入了
    var tag = true; //因为用户有频繁的输入
    return function(){
        if(tag){ //如果用户真的有频繁输入的动作
            tag = false; //禁止这种频繁的输入动作
            setTimeout(function(){
                callback();
                tag = true;
            },time);
        }
    }
}

继承

  • 原型继承

    让父类的实例作为子类的原型,将子类的原型构造器补充完整 (为了让子类继承方法)


    

  • 使用构造函数方式继承

    在子类当中去调用父类的构造函数(为了让子类继承属性)


    

  • 组合方式继承

    原型继承方法,借用构造函数继承属性一起使用


    

多态

方法的重写和重载也是多态的一种体现

  • 方法重载

    同一个方法会根据参数的不同来执行不同的业务逻辑


    

  • 方法重写

    和父类同名方法功能不同,被称作方法重写


    

相关