当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《为什么在执行中动态修改JavaScript函数的代码是件坏事?》经验,为你挑选了2个好方法。

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


我意识到这是一个相当简单的例子,但肯定会有一些用法可以从动态修改函数中获得,这本身就是非常有用的.



1> davogones..:

虽然这可能会做你需要它做的事情,但是从现在开始6个月你(或维护代码的人)将会"WTF?!"

如果您的用例是基于某些条件提醒或写入,为什么不编写两个不同的功能?或者让您的函数采用另一个决定输出模式的参数.或者将函数作为执行实际输出的参数传递.东西,你知道的,一点点更多的理智的一面.;-)



2> Matthew Crum..:

在某些情况下,更改函数的行为可能会有用,但有更好的方法可以实现.在您的示例中,您可以通过将函数作为参数传递(类似于策略模式)来创建以不同方式处理输出的函数的新实例:

function makeDisplay(displayStrategy) {
    return function(msg) {
        // I'm assuming you would do some additional processing here...

        displayStrategy(msg);
    }
}

var display = makeDisplay(alert);

// now modify display to use document.write
display = makeDisplay(function(msg) { document.write(msg); });

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有