Javascript 在函数内部插入新函数…从外部插入
是否可以从外部在函数范围内插入新操作? 例如:Javascript 在函数内部插入新函数…从外部插入,javascript,scope,nested,Javascript,Scope,Nested,是否可以从外部在函数范围内插入新操作? 例如: 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
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?
在那之后,我怎样才能从main中取出函数dosomething呢?
这个概念或多或少是这样的:
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执行数组中的所有函数,并使用此数组从外部插入/取出函数。有没有更好的解决办法
如何使函数main永久执行函数dosomething
你可以像这样装饰它
var oldmain = main;
main = function() {
doSomething();
return oldmain.apply(this, arguments);
}
在那之后,我怎样才能从main中取出函数dosomething呢
不,你不能。函数在这方面是不可变的对象,不能分解。你唯一能做的就是再拿一次奥尔德曼
我想使用此技术简单地在循环中添加和删除动画:
function main(){ window.requestAnimationFrame(main); }
我找到的唯一解决方案是让函数main执行数组中的所有函数,并使用此数组从外部插入/取出函数
对于动态大小的动画,这是一个完美的解决方案。这没什么问题。我怀疑这就是X/Y问题:你需要解决X,你认为Y在现有函数中插入和删除功能是解决问题的方法,但更有可能的是X有更好的解决方案。也许看看@Crowder:我不知道,基本上,我想使用这种技术简单地在这个循环中添加和删除动画:函数main{window.requestAnimationFramemain;}@TTK:因此,数组是完全合法的解决方案。