Всем привет!
мне нужно уметь блокировать функции. решение придумал\"придумал" такое:
Код:
|
/* Permitted execution of a function. */
Function.prototype.pexec = function(arg1, arg2, arg3) {
if(!this.pexecflag) return;
this(arg1, arg2, arg3);
}
/* Locks pexec execution of a function */
Function.prototype.lock = function() {
this.pexecflag=false;
}
/* Unlocks pexec execution of a function */
Function.prototype.unlock = function() {
this.pexecflag=true;
} |
при этом если я хочу пользоваться "осторожным" вызовом функции, я ее вызываю через FunctionName.pexec(parms), и блокирую где надо функцией FunctionName.lock().
В общем, мне нравится это решение, за исключением того, что я не могу
понять как передавать самой функции FunctionName все параметры до одного, которые были переданы через .pexec(). Передавать arguments массивом - не по фэн-шую, поскольку основная реализация функции не должна ничего знать о таком способе вызова.
Так что, форумчане, прошу вас подсказать каким способом этого можно достичь или предложить другие решения изначальной задачи.