最近,我发现自己将函数名称作为字符串参数传递给另一个函数,使用 typeof
检查它的存在,并在必要时调用它。
当我写这篇文章时,我意识到我可以只传递一个函数引用。
我的问题是,“将函数名称作为字符串传递”模式是否有通用名称?而且,这是一种反模式吗?我通常应该尽可能使用引用吗?
最佳答案
我不知道它有名字,但它绝对是一种反模式。这更难,而且实际上它对内存的占用比仅仅发送函数引用更糟糕。
function doThisThing() {}
var action = 'doThisThing';
你看,我实际上在内存中创建了两个东西,每个东西都有一个指针。
var action = function() {}
在这里,我在内存中创建了一个项目,而 action
只是指向它的指针。然后就非常容易了
if (action) action();
甚至更短
action && action();
仅仅传递引用就容易多了。只是:一个引用。它几乎没有任何开销,而且更容易。
关于javascript - JS 模式提供函数名称作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33108012/