js中和重载和多态

183 阅读1分钟

一.重载

在程序中可以定义相同名字,不同参数的形式。
函数在调用时,自动识别不同参数对应的函数,实现了相同函数名不同的函数调用
JavaScript本身是没有重载的,但是可以通过arguments实现函数重载
使用arguments实现重载:
    function React(){  //arguments:[] 类数组 
        //如果只有一个参数的时候
        if(arguments.length==1){
            this.width = arguments[0];
            this.height = arguments[0];
        }
        //如果有多个参数的时候
        if(arguments.length>1){
            this.width = arguments[0];
            this.height = arguments[1];
        }
        this.toString = function(){
            return 'width:'+widht+' height:'+height
        }
    }
    var r1 = new React(10);
    console.log(r1.toString())  //width:10 height:10
    var r2 = new React(10,9);
    console.log(r2.toString())  //width:10 height:9