javascript - 对 JavaScript 对象执行数学运算

标签 javascript prototype-programming

有没有办法覆盖 JavaScript 中数学运算符(如 +-*/)的行为?

假设我有一个 person 对象:

var Person = (function() {
  function _Person(age) {
    this.age = age;
  }
  /* I was hoping something like this would work
  _Person.prototype.add = function(input) {
    return this.age + input.age;
  };*/
  return _Person;
})();

我创建了两个人,并将他们加在一起以获得他们的总年龄:

var p1 = new Person(24);
var p2 = new Person(25);
var totalAge = p1+p2;//should equal 49

我希望能够实现原型(prototype)方法或其他方法来指定将两个对象添加在一起时要执行的操作。其他语言有这个,例如python有__add__,javascript有办法做到这一点吗?

这是jsfiddle中的示例代码:http://jsfiddle.net/HYrPM/

最佳答案

JavaScript 没有运算符重载功能。

关于javascript - 对 JavaScript 对象执行数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998837/

相关文章:

JavaScript RegExp.test() 返回 false,即使它应该返回 true

javascript - Zombie.js 单击 Javascript 链接

javascript - 了解 JavaScript 中的原型(prototype)继承

javascript - 如何让原型(prototype)方法访问父变量?

javascript - 为什么在 javascript 中使用链式原型(prototype)继承?

javascript - 如何使用揭示原型(prototype)模式在内部调用重写方法

javascript - 基于原型(prototype)与基于类的继承

javascript - 哪个在 MongoDB 中占用更少的内存,数字还是字符串?

javascript - 在angularjs中每X分钟生成一次时间数组

javascript - 日期计算 - 夏令时 (DST) 和时区问题 - 土耳其