2016-05-06 5 views
3

Посмотрите на этот пример:Как мой экземпляр класса неявно возвращает число при сравнении с другим экземпляром?

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

Как вы можете видеть на сегодняшний день объект, если сравнить два экземпляра, то они возвращаются неявно getTime() метод этого экземпляров.

Я хочу сделать то же самое с моим объектом.

Представьте мой класс что-то вроде этого:

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

и я хочу, когда я сравниваю два экземпляра моего класса, то его можно сравнить значение своего метода myNumber().

ответ

4

Определите метод valueOf() для вашего класса:

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

См a JS Bin demo.