Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   function lock (permitted execution) (https://javascript.ru/forum/misc/2560-function-lock-permitted-execution.html)

forker 15.01.2009 18:44

function lock (permitted execution)
 
Всем привет!

мне нужно уметь блокировать функции. решение придумал\"придумал" такое:

Код:

/* 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 массивом - не по фэн-шую, поскольку основная реализация функции не должна ничего знать о таком способе вызова.

Так что, форумчане, прошу вас подсказать каким способом этого можно достичь или предложить другие решения изначальной задачи.

Kolyaj 15.01.2009 19:18

Функция f1 просто вызывает функцию f2 со своими параметрами:
function f1() {
  return f2.appy(null, arguments);
}

forker 15.01.2009 19:24

премного благодарен!!!
 
премного благодарен, Kolyaj! (не догадался прочитать desc всех базовых методов)


Часовой пояс GMT +3, время: 08:22.