You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从页面获取信息传入JavaScript对象构造器后显示[object Object]问题咨询

问题原因

当你直接把person构造函数生成的实例对象赋值给DOM的innerHTML属性时,JavaScript会自动尝试将对象转换为字符串类型。默认情况下普通对象调用toString()方法会返回固定格式的[object Object]字符串,这就是页面输出异常的核心原因。

解决方法

你可以选择以下任意一种方案实现需求:

  • 方案1:手动拼接属性生成自定义展示字符串
    直接读取对象的各个属性,拼接成你想要的展示格式再赋值,示例修改代码:
// 替换原来的 document.getElementById('result').innerHTML = demo; 即可
document.getElementById('result').innerHTML = `姓名:${demo.name},家族姓氏:${demo.family},年龄:${demo.age}`;
  • 方案2:使用JSON序列化输出完整对象内容
    如果需要快速查看对象的所有属性值,可以直接用JSON.stringify()将对象转为JSON格式字符串:
document.getElementById('result').innerHTML = JSON.stringify(demo, null, 2);

第二个和第三个参数是用来格式化JSON缩进的,输出的内容可读性更高。

  • 方案3:重写person构造函数的toString方法
    在定义person构造函数时就自定义转字符串的逻辑,后续直接赋值对象也能正常输出你要的内容:
function person(name, family, age) {
  this.name = name;
  this.family = family;
  this.age = age;
  // 新增自定义toString逻辑
  this.toString = () => `姓名:${this.name},家族姓氏:${this.family},年龄:${this.age}`;
}

修改后你原来的document.getElementById('result').innerHTML = demo;代码不需要改动就能正常运行。

内容的提问来源于stack exchange,提问作者M.alizadeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:54:02