是否可以从外部在函数范围内插入新动作? 例如:
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
执行数组中的所有函数,并使用此数组从外部插入/取出函数。有没有更好的解决方案?
答案 0 :(得分:0)
如何使函数main永久执行dosomething函数?
你可以装饰它,比如
var oldmain = main;
main = function() {
doSomething();
return oldmain.apply(this, arguments);
}
不,你不能。函数是这方面的不可变对象,不能被分解。您唯一能做的就是再次使用之后,如何从main中取出dosomething函数?
oldmain
。
我想使用这种技术在这个循环中简单地添加和删除动画:
function main(){ window.requestAnimationFrame(main); }
我找到的唯一解决方案是使函数main执行数组内的所有函数,并使用此数组从外部插入/取出函数。
对于动态大小的动画,这是一个完美的解决方案。它没有错。