[thelist] [JS]Equality

Marcus Andersson marcan at home.se
Mon Oct 20 10:42:59 CDT 2003


Consider the following:
 
function AClass() {
 
   // declare an inner class
  function AClassMode(msg) {
    this.toString = function() {
      return msg;
    }
  }
  
  AClass.MODE_A = new AClassMode("Mode A");
  AClass.MODE_B = new AClassMode("Mode B");
  AClass.MODE_C = new AClassMode("Mode C");
 
  // methods of class A
}
 
What will happen in the interpreter when I do an equality check?
AClass.MODE_A = AClass.MODE_B;
Will it compare references or something else? Is it specified?
 
Will there be a big performance hit if I do like that instead of using
1,2,3 instead? Example:
 
  AClass.MODE_A = 1;
  AClass.MODE_B = 2;
  AClass.MODE_C = 3;
 
I think the first way of doing it gives me a nicer OO (which I like :)
so I'd like to use it if it doesn't give me bad performance. 
 
What do you think? Am I just introducing complexity doing like that?
 
BTW: This is used in a system with well over 100 JS classes and these
types of "enums" will be used in a lot of places.
 
/Marcus
 


More information about the thelist mailing list