对JavaScript对象执行数学运算

对JavaScript对象执行数学运算,javascript,prototype-programming,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 +

有没有一种方法可以覆盖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
我希望能够实现一个原型方法,或者指定当两个对象添加到一起时要做什么。其他语言也有这样的功能,比如python有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
,javascript有这样的功能吗


以下是JSFIDLE中的示例代码:

JavaScript没有运算符重载功能。

您不能重载ops,但可以向person添加一个
valueOf
函数,该函数可以返回您想要的任何内容(我知道这是6个月前提出的,但有人刚刚编辑过:)


啊,操作员超载,这是我在谷歌搜索中遗漏的术语。谢谢,糟糕的是:)你不需要过多的东西。看到我的答案了吗
function Person( age ){
    this.age = age;
}

Person.prototype.valueOf = function(){
    return this.age;
}

var p1 = new Person( 24 )
  , p2 = new Person( 25 );

p1+p2 // 49