JavaScript面向对象——实现多态

JavaScript面向对象——JS实现多态

学过其他面向对象编程语言的伙伴应该都知道有种特性叫多态,那么在JavaScript如何实现?这个应该比较简单,对传入的参数做判断实现多种调用方式就行,直接放例子好了。

    function add() {
        var arg = arguments,
            len = arguments.length
        switch (len) {
            case 0:
                return 10
            case 1:
                return 10 + arg[0]
            case 2:
                return arg[0] + arg[1]
        }
    }
    // test
    console.log(add())
    console.log(add(7))
    console.log(add(7, 9))

结果:


也可写成类的形式:

    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 = arguments.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()
    console.log(a.add())
    console.log(a.add(7))
    console.log(a.add(7, 9))

结果:


是的,就这样实现了~ ~ ~

你可能感兴趣的:(JavaScript,JS面向对象)