Gvozd, с Вашего позволения, я чуть-чуть изменю Ваш код, чтобы он был более читабельным:
var a = {
'call_function' : function(name, param)
{
if(this[name] !== undefined && this[name].constructor == Function) {
return this[name].apply(this, param);
}
return null;
},
'func' : function(p1)
{
alert(p1);
}
}
a.call_function('func', ['ok!']);
То есть Вы подлагаете все вызовы делать, вместо классического способа:
a.func('ok!');
- таким способом:
a.call_function('func', ['ok!']);
Не думаю, что это решение многим понравится.