在面向對象中有一種特性叫多態,就是同一種方法的多種調用方式,在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));