在javascript中,您可以重写一个函数,如下所示:
function foo() {
setTimeout(function() {
alert('sup stallion');
foo = function() { //rewrite foo to nolonger wait 4 seconds to alert.
alert('sup stallion');
}
}, 4000);
}
Run Code Online (Sandbox Code Playgroud)
显然这是一个人为的例子,但这种方法在概念上是否有任何错误(除了竞争条件).
自修改代码可能令人困惑,并且难以调试,因此通常可以避免.
除此之外没有问题,也没有竞争条件.