gpt4 book ai didi

javascript - 为什么在执行过程中动态修改 JavaScript 函数的代码是一件坏事?

转载 作者:行者123 更新时间:2023-11-30 07:01:35 24 4
gpt4 key购买 nike

几天前,我问了一个关于在外部脚本执行过程中动态修改函数代码的问题,我被告知完全忘记这个概念。我不确定我明白为什么会这样。让我举个例子:

<script>
var display = function(msg)
{
alert(msg);
}

// Now, at the moment, the display() function
// is receiving a single parameter and alerting
// it to the user. I'm now going to use eval()
// to modify the display() function.

eval('display = ' + display.toString().replace('alert(', 'document.write('));

// Now, the display() function writes its parameter
// to the document as opposed to alerting it.
</script>

我意识到这是一个相当微不足道的例子,但肯定有一些用途可以从动态修改函数中派生出来,这本身就很有用。

最佳答案

虽然这可能会完成您需要它做的事情,但 6 个月后您(或维护您的代码的人)将会“WTF?!”

如果您的用例是根据某些条件发出警报或写入,为什么不编写两个不同的函数呢?或者让您的函数采用另一个决定输出模式的参数。或者传入一个函数作为执行实际输出的参数。你知道的,在理智的一面一点。 ;-)

关于javascript - 为什么在执行过程中动态修改 JavaScript 函数的代码是一件坏事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/486702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com