在面向对象中有一种特性叫多态,就是同一种方法的多种调用方式,在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));