Javascript 无法将对象作为参数传递

Javascript 无法将对象作为参数传递,javascript,html,jquery,arrays,object,Javascript,Html,Jquery,Arrays,Object,HTML和内联JS代码: <a onclick='show(user)'>${user.firstName + " " + user.lastName}</a> ${user.firstName+“”+user.lastName} 在这个show函数中,我传递了一个具有5-6个属性的对象用户,但当我使用调试器时,它并没有将我显示为对象 我也试过了,这是在调试器中将用户显示为对象,但我得到了未捕获的语法错误 <a onclick='show($

HTML和内联JS代码:

<a onclick='show(user)'>${user.firstName + " " + user.lastName}</a>
${user.firstName+“”+user.lastName}
在这个show函数中,我传递了一个具有5-6个属性的对象用户,但当我使用调试器时,它并没有将我显示为对象

我也试过了,这是在调试器中将用户显示为对象,但我得到了未捕获的语法错误

<a onclick='show(${user})'>${user.firstName + " " + user.lastName}</a>
${user.firstName+“”+user.lastName}
我想将其作为对象传递,以便利用其属性

const displayUsers=(用户)=>{
const htmlString=用户
.map((用户)=>{
调试器;
返回`
  • ${user.firstName+“”+user.lastName}
  • `; }) .加入(“”); usersList.innerHTML=htmlString; 日志(用户“列表”) //console.log(htmlString) }; 功能显示(用户) { 警报(用户); console.log(user.aonId);
    };如果在json字符串化的按钮中设置数据属性,然后为所有按钮添加一个侦听器,单击“解析数据属性”并访问它,会怎么样

    例如:

    const displayUsers=(用户)=>{
    const htmlString=用户
    .map((用户)=>{
    返回`
    
  • ${user.firstName+“”+user.lastName}
  • `; }) .加入(“”); document.getElementById('content')。innerHTML=htmlString; }; 显示用户([{ 名字:“乔治”, 姓氏:“迈克尔” }, { 名字:“布鲁斯”, 姓:“斯普林斯汀” }]); const buttons=document.querySelectorAll(“[data user]”); 按钮。forEach(功能(按钮){ 按钮。addEventListener(“单击”,函数显示(事件){
    log(JSON.parse(event.currentTarget.dataset.user));//当需要使用元素的方法或属性时,应该使用DOM方法创建元素,如

    这将使您能够添加事件侦听器、引用值等

    下面的示例在
    users
    数组中的每个用户上循环,并在字符串中创建当前的结构。附加事件侦听器,设置文本并生成元素

    最后,所有内容都收集到一个实例中,该实例允许您在一次扫描中附加所有创建的用户元素,以提高性能

    由于所有节点都一次插入到文档中,因此只会触发一次回流和渲染,而不是单独插入每个节点时可能触发一次

    然后将片段附加到
    usersList
    元素中

    const displayUsers = (users) => {
      const fragment = new DocumentFragment();
    
      users.forEach(user => {
        const { firstName, lastName } = user;
    
        const listItem = document.createElement('li');
        const anchor = document.createElement('a');
    
        anchor.addEventListener('click', event => show(user, event));
        anchor.textContent = `${firstName} ${lastName}`;
    
        listItem.append(anchor);
        fragment.append(listItem);
      });
    
      usersList.append(fragment);
    };
    

    这就是使用HTML字符串的缺点:您无法轻松地将复杂数据序列化到其中。我建议您学习如何创建DOM元素,并使用DOM API绑定事件处理程序。用户是数组还是对象。您可以在数组上使用映射函数。它起作用了。谢谢您单击t这将使未来有同样问题的读者知道正确答案是什么,并给我们假互联网点数作为奖励。