多态
JavaScript多态的实现通过对参数进行判断从而实现多态。
// 多态
function add() {
var args = arguments;
var len = args.length;
switch (len) {
case 0: return 10;
case 1: return 10 + args[0];
case 2: return args[0] + args[1];
}
}
// 测试代码
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 args = arguments;
var len = args.length;
switch (len) {
case 0: return zero();
case 1: return one(args[0]);
case 2: return two(args[0], args[1]);
}
}
}
// 测试代码
var A = new Add();
console.log(A.add()); // 10
console.log(A.add(5)); // 15
console.log(A.add(6, 7)); // 13