Search code examples
javascriptdojo

How to overload operator equality for JavaScript objects


I have created new objects with Dojo.declare. How to overload operator == for objects ?


Solution

  • You can't overload ==, but == has an implicit .toString() call, so whatever .toString() returns will allow you to effectively overload == (kinda):

    function foo(){}
    foo.prototype.toString = function(){ return 42; }
    
    var x = new foo();
    x == 42; // true
    

    As for how to do this in Dojo, I don't use Dojo, sorry, but the gist is that you get a reference to whatever object is creates and add thatObject.prototype.toString as in my example.