2016-05-06 2 views
3

Regardez cet exemple:Comment mon instance de classe peut-elle renvoyer implicitement un nombre lors d'une comparaison avec une autre instance?

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

Comme vous pouvez le voir dans l'objet de la date, lorsque l'on compare deux cas, ils renvoient implicitement getTime() alors la méthode de ce cas.

Je veux faire exactement la même chose avec mon objet.

Imaginez ma classe est quelque chose comme ceci:

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

et je veux quand je compare alors deux cas de ma classe, il compare la valeur de leur méthode myNumber().

Répondre

4

définir une méthode valueOf() pour votre classe:

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

Voir a JS Bin demo.