与另一个实例比较时,我的 class 实例如何隐式 return 一个数字?

How can my class instance implicitly return a number when compare with another instance?

看这个例子:

var d1 = new Date(2016,4,1);
var d2 = new Date(2016,4,2);
if (d2 > d1){ .... }

正如您在日期对象中看到的那样,当您比较两个实例时,它们 return 隐式 getTime() 此实例的方法。

我想对我的对象做完全相同的事情。

想象一下我的 class 是这样的:

var myClass = function (arg1,arg2,arg3){
   ....
   ....
   ....
   this.myNumber = function (){
         return arg1 + arg2+ arg3;
   }
}

我想当我比较我的 class 的两个实例时,它会比较它们的 myNumber() 方法的值。

为您的 class 定义一个 valueOf() 方法:

var myObj = function(arg1,arg2,arg3) {
   ....
   ....
   ....
   this.valueOf = function() {
     return arg1 + arg2+ arg3;
   }
}

参见a JS Bin demo