我正在使用函数在运行时通过传递函数名称字符串和对象作为参数来创建函数。然后将此动态函数设置为由按钮的 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/