带反引号的 JavaScript 模板文字不起作用

标签 javascript dom string-interpolation template-literals

我正在使用函数在运行时通过传递函数名称字符串和对象作为参数来创建函数。然后将此动态函数设置为由按钮的 onclick 事件处理程序调用:

function createDynamicFunction(dynamicFunctionName, dynamicFunctionParameter) {
 document.getElementById("dynamicButton").setAttribute("onclick", `${dynamicFunctionName}(${dynamicParameter})`)})`;
}

DOM .setAttribute 函数需要一个字符串,因此仍在对象上调用“to string”函数;这会导致数据类型名称作为字符串而不是对象本身传递。

dynamicFunction([object Object])

我该如何执行此操作才能让对象本身通过?

为了清晰起见进行了编辑

最佳答案

dynimcParameter 是一个对象,当您尝试将其转换为字符串时,它会调用该对象的 toString 方法,从而产生 [对象对象]

我建议您改用addEventListener

document.getElementById("dynamicButton").addEventListener('click', () => dynamicFunction(dynimcParameter))

关于带反引号的 JavaScript 模板文字不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66479846/

相关文章:

javascript - CSS 选择器性能,DOM 解析

string - 在 Raku 中不创建字符串上下文的情况下进行插值?

Typescript String.format 不存在

javascript - 使用 nicEdit 按类名选择实例

javascript - 反引号 (`…` ) 在 JavaScript 中调用函数

javascript - insertRow 与 appendChild

c# - 字符串插值中的变量对齐组件

javascript - 用于自定义 cms 的所见即所得 HTML 编辑器

javascript - JS <(小于)运算符失败

javascript - 将文本输入添加到 Pikaday 模态对话框