Public static method calls all instance methods

by bryandowning

JavaScript

window.MyClass = (function(){

    var _instances = [];

    function MyClass( name ){
        _instances.push( this );
        this.name = name;
    }

    MyClass.prototype.myMethod = function( arg ) {
        console.log( this );
        console.log( arg );
    };

    // This public static method calls the instance method of the same name for each instance
    MyClass.myMethod = function(){
        var i = _instances.length;
        while( i-- ){
            var instance = _instances[i];
            instance.myMethod.apply( instance, arguments );
        }
    };
    
    return MyClass;

})();

a = new MyClass('a');
b = new MyClass('b');

MyClass.myMethod( true );

console.log('--------------------------------------------------------------------------------');

a.myMethod(false);
b.myMethod(false);