2016-05-06 10 views
3

Schauen Sie sich das Beispiel:Wie kann meine Klasseninstanz implizit eine Zahl zurückgeben, wenn sie mit einer anderen Instanz verglichen wird?

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

Wie Sie Datum Objekt sehen können, wenn Sie zwei Instanz vergleichen dann kehren sie implizit getTime() Methode dieser Instanzen.

Ich möchte genau dasselbe mit meinem Objekt tun.

Stellen Sie sich meine Klasse so etwas wie dieses:

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

und ich will, wenn ich zwei Instanzen von meiner Klasse vergleichen dann den Wert ihrer myNumber() Methode vergleichen.

Antwort

4

definieren valueOf() Methode für Ihre Klasse:

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

a JS Bin demo See.

Verwandte Themen