重载和多态的使用场景(js的问题)

重载:定义相同名称,不同参数的函数,程序调用时自动识别不同参数的函数

实现了相同函数名不同的函数调用

js中没有重载,可以通过arguments实现函数重载

/**
 * 计算正方形或长方形面积
 */
function React() {
  if (arguments.length == 1) {
    // 如果是1个参数,返回正方形
    this.width = arguments[0];
    this.height = arguments[0];
  } else {
    // 如果是2个参数,返回长方形
    this.width = arguments[0];
    this.height = arguments[1];
  }

  this.toString = function () {
    return `${this.width} * ${this.height} = ${this.width * this.height}`;
  };
}

var react1 = new React(5);
console.log(react1.toString());
// 5 * 5 = 25

var react2 = new React(3, 4);
console.log(react2.toString());
// 3 * 4 = 12

多态:同一个东西在不同情况下表现不同状态,重写和重载

你可能感兴趣的:(javascript,前端,react.js)