与另一个实例比较时,我的 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;
}
}
看这个例子:
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;
}
}