Search code examples
javascriptoopclassstatic-methods

Javascript "this" in static methods


I have a code like that:

User = function(){}

User.a = function(){
  return "try";    
}

User.b = function(){

}

​ From User.b() I can call User.a() using:

User.b = function(){
    return User.a();
    }

but not using this since it's not an instance of user (User.a() and User.b() are something like "static methods").

What i want to do is to be able to call User.a() from User.b() without knowing which is the main function, in this case User.

Something like this to be used in static methods.


Solution

  • In reality there is no methods or static methods in js, there's just functions that are assigned to object properties (functions being objects as well) and they all work the same way. Since you are calling it like User.b(), this will be User for the call.

    User.b = function() {
        return this.a();
    }