理解多态

多态是指一个引用(类型)在不同情况下的多种状态。即指同一个方法多种调用方式.

也可以理解成:多态是指通过指向父类的引用,来调用在不同子类中实现的方法。

demo:

使用普通函数实现:

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];
    }
}

// test:
console.log( add() );        // 10
console.log( add(5) );        // 15
console.log( add(6, 7) );    // 13

使用类的形式实现:

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

// test:
var a = new Add();
a.add();        // 10
a.add(5);        // 15
a.add(6, 7);    // 13

引路人
146 声望12 粉丝