繁体   English   中英

从外部将新函数插入函数中

[英]Insert a new function inside a function…from outside

是否可以从外部在函数范围内插入新动作? 例如:

       function main(){
           //I want to insert in here new action to perform
       }

       var dosomething = function() { 
             console.log("I want to be inside the main");
       }

       main();

如何让我的功能main永久执行函数dosomething 而在这之后,我怎么能拿出函数dosomethingmain
这个概念或多或少是这样的:

    function main(){
           //I want to insert in here new actions to perform
    }

    var dosomething = function() { 
             console.log("I want to be inside the main");
    }


   *insert dosomething in main*

   //This is how it should look now the function main:
   function main(){
          dosomething();
   }


   *erase dosomething from main*

   //The function main come back to be empty:
   function main(){
   }

我发现的唯一解决方案是使函数main执行数组内的所有函数,并使用此数组从外部插入/取出函数。 有没有更好的解决方案?

如何使功能主体永久执行功能?

你可以装饰它,就像

var oldmain = main;
main = function() {
    doSomething();
    return oldmain.apply(this, arguments);
}

在那之后,我怎么能从主体中取出该功能呢?

你不能。 在这方面,功能是不可变的对象,无法分解。 您唯一可以做的就是再次使用oldmain

我想使用此技术来简单地在此循环内添加和删除动画:

 function main(){ window.requestAnimationFrame(main); } 

我发现的唯一解决方案是使函数main执行数组内的所有函数,并使用此数组从外部插入/取出函数。

对于动态尺寸的动画,这是一个完美的解决方案。 没错。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM