我已经为 Web 编程了很长一段时间,但直到最近才发现一些关于函数使用的新复杂性以及你可以用它们做的奇怪的事情(或者我认为它们是)。然而,在这一点上,它们似乎只是语法上漂亮的东西。我希望有人能告诉我这些新发现的一些方面是如何被证明是有用的。
例如,我第一次运行它时,我认为它肯定行不通:
<script>
function x(q)
{
q(x);
}
x(function(a)
{
alert(a);
}
);
</script>
但它做到了!不知何故,创建一个命名函数,它接收一个不同的匿名函数作为它的唯一参数,然后运行传递给它的函数,并将它自己作为参数传递给它工作得很好。这让我大吃一惊,我几乎可以肯定它有很多实用性,但我还不能完全确定它。
啊,还有一件事我很高兴地发现:使用全局范围的变量来存储函数,稍后可以在执行中使用 JavaScript 的 eval() 函数来修改该变量,从而动态地改变函数的内部工作。一个例子:
<script>
var f = function()
{
alert('old text');
}
eval('f = ' + f.toString().replace('old text', 'new text'));
f();
</script>
果然,该代码提醒了“新文本”字符串;当我看到这一点时,我的思绪再次被震撼,但也立即对创造令人难以置信的东西的潜力产生了兴趣。
所以......我对 Stack Overflow 的迫切问题:如何以任何积极的方式使用这些看似抽象的编码原则?