【问题标题】:How to use push() or similar methods as a function argument in JavaScript [duplicate]如何在 JavaScript 中使用 push() 或类似方法作为函数参数 [重复]
【发布时间】:2021-07-17 21:13:18
【问题描述】:

我正在尝试创建一个在调用时使用 push() 或 pop() 方法作为参数的函数。我有一个工作代码,但我注意到我重复了很多次,我知道一个函数将有助于提高我的代码质量,但是,我无法找到一种方法来动态引入 push() 或 pop( ) 方法,因此当我想做类似的事情时,我不必重复相同的代码行。

这是当前的工作代码(这与其他行类似):

pushBtn.addEventListener("click", () => {
    if (inputEl.value) {
        myEmojis.push(inputEl.value)
        inputEl.value = ""
    }
    render(myEmojis)
})

我创建了一个函数,我会将 push() 参数传递给它,但它没有按预期工作。 这是我尝试创建的函数:

function modifyEmoji(action) {
    if (inputEl.value) {
        myEmojis.action(inputEl.value)
        inputEl.value = ""
    }
    render(myEmojis)
}

我如何调用函数:

pushBtn.addEventListener("click", () => {
    modifyEmoji(push)
})

这会返回:“未捕获的 TypeError:myEmojis.action 不是函数”

提前致谢。

【问题讨论】:

  • 试试myEmojis[action](inputEl.value)modifyEmoji("push")打电话,但也要考虑这是否是一个好的设计选择......
  • 感谢 ggorlen,但您所说的设计选择是什么意思?
  • 我的意思是:设计选择。流行的和标准的库是否通常像这样运行,客户端可以指定在内部对象上调用哪个方法?可能不会,因为它(可能)非常混乱和脆弱。
  • 哦,我明白你在说什么。我实际上是一个初学者,只是想在我正在观看的教程之外进行探索。不过还是谢谢。
  • 是的,确实如此。非常感谢。

标签: javascript function performance methods array-push


【解决方案1】:

这行代码:myEmojis.action(inputEl.value) 表示为对象数组定义了一个名为“actions”的函数,但事实并非如此,因此会导致错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 2017-03-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    相关资源
    最近更新 更多