Sistema Javascript Hook

Ok, então escrevi um pequeno sistema de gancho / plug-in para Javascript, pois precisava ter uma classe base na qual outros desenvolvedores poderiam ligar suas funções antes de executar outra funcionalidade.

Aqui está o que eu tenho:

var ClassName = function(){
//Construct Stuff
}

ClassName.prototype.hooks = new Array();


ClassName.prototype.setHook = function( hook, args ){
// {Hook Name : { Func: args }}
InstanceOfClass.hooks.push({'hook': hook, 'args': args});
}

ClassName.prototype.getHook = function( hook ){

var hookArray = InstanceOfClass.getHooks();

for( var i in hookArray ){

if( hookArray[i].hook == hook ){
var argsKeys = Object.keys(hookArray[i].args);
return InstanceOfClass[argsKeys[0]].apply(ClassName, hookArray[i].args);
}
}
return null;
}

ClassName.prototype.getHooks = function(){
return InstanceOfClass.hooks;
}

Uso:

ClassName.prototype.preMethod = function(){
var InstanceOfClass = new ClassName();

InstanceOfClass.setHook('MY_HOOK', {'SomeOtherMethod', [params]});
}



ClassName.prototype.myMethod = function(){
var InstanceOfClass = new ClassName();

// Will fire off the method by hook
InstanceOfClass.getHook('MY_HOOK');
}

Lembre-se de que minhas habilidades em JavaScript são muito fracas e pode haver maneiras melhores de fazer isso, mas eu realmente não consegui descobrir mais nada.

Deixe-me saber o que você acha ou quaisquer melhorias que você faria.