JavaScript面向對象編程-多態

多態

在面向對象中有一種特性叫多態,就是同一種方法的多種調用方式,在JavaScript中也能夠實現,只不過是對傳入的參數作判斷以實現多種調用方式。算法

//多態
function add() {
    //獲取參數
    var arg = arguments,
        len =arg.length;
    switch(len){
        //若是沒有參數
        case 0:return 10;
        //若是隻有一個參數
        case 1:return 10 + arg[0];
        //若是有兩個參數
        case 2:return arg[0] +arg[1];
    }
}
//測試用例
console.log(add());
console.log(add(3));
console.log(add(5,7));

也能夠轉化成更易懂的類形式測試

function Add() {
    //無參數算法
    function zero() {
        return 10;
    }
    //一個參數算法
    function one(num) {
        return 10 + num;
    }
    function two(num1,num2) {
        return num1 + num2;
    }
    this.add =function () {
        var arg = arguments,
            //獲取參數長度
            len = arg.length;
        switch (len) {
            //若是沒有參數
            case 0:return zero();
            case 1:return one(arg[0]);
            case 2:return two(arg[0],arg[1]);
        }
    }
}
//實例化類
var A = new Add();
//測試
console.log(A.add());
console.log(A.add(5));
console.log(A.add(6,7));
相關文章
相關標籤/搜索