在javascript中的模板文字中将对象作为参数传递

时间:2019-09-05 18:58:42

标签: javascript

我目前有一个对象,我想将其作为参数传递给模板文字内部的另一个函数:

    var template = `<button onclick="onclick(${object})"></button>`;

但是,这会使参数成为字符串值:[object Object]并且不传递参数。有什么方法可以将此参数传递给函数吗?

非常感谢您。

1 个答案:

答案 0 :(得分:0)

您将需要将您的对象表示为字符串。您可以使用JSON.stringify

var template = `<button onclick="handleClick(${JSON.stringify(obj).split('"').join("&quot;")})"></button>`;

您需要转义双引号(此代码可以)和单引号(如果用于onclick事件)(此代码不会)。

onclick =“ onclick”实际上调用window.onclick-意味着它可以在任何地方获得点击。您应该使用其他名称(例如handleClick)。

出于这种原因,我建议不要使用内联事件侦听器,因为如果您需要采用内容安全策略,它们可能会引起问题。