[英]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
? 而在这之后,我怎么能拿出函数dosomething
从main
?
这个概念或多或少是这样的:
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.