javascript - 显示对象的对象对象问题

标签 javascript arrays constructor

嘿,我在 JS 中有一个构造函数对象,并且想查看该对象的所有内容,为什么会像这里一样弹出 [object Object] ? MyCodeFiddle

最佳答案

您可以迭代所有对象键,并使用对象 pers 属性值填充新创建的 persArr

最后,只需一次调用,您就可以获得用逗号正确分隔的所有属性值 persArr.join(', '):

function Person(first, last, age, eyecolor) {
  this.first = first;
  this.last = last;
  this.age = age;
  this.eyecolor = eyecolor;
}

var pers = new Person('John', 'Colin', 47, 'blue'),
    persArr = [];

Object.keys(pers).forEach(function(key) {
  persArr.push(pers[key]);
});

document.getElementById('data').innerHTML = persArr.join(', ');
#data {
  display: flex;
  width: 120px;
  height: 40px;
  border: 1px solid #000;
  background-color: #fff;
  justify-content: center;
  align-items: center;
}
<div id="data"></div>

更好的是,您可以在 Person 原型(prototype)中创建一个新方法来正确获取您想要的信息:

function Person(first, last, age, eyecolor) {
  this.first = first;
  this.last = last;
  this.age = age;
  this.eyecolor = eyecolor;
}

Person.prototype.getInfo = function() {
  return `${this.first} ${this.last}, ${this.age} years old and ${this.eyecolor} eyes.`;
}

var pers = new Person('John', 'Colin', 47, 'blue');
document.getElementById('person').innerHTML = pers.getInfo();
<div id="person"></div>

如果您想打印对象以进行调试:

  • 控制台输出:

    console.log(pers);

  • 在 html 中使用 JSON.stringify() 作为字符串输出:

    document.getElementById('data').innerHTML = JSON.stringify(pers, null, 4);

关于javascript - 显示对象的对象对象问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40608069/

相关文章:

javascript - 如何将我的 jquery 脚本转换为 vanilla js?

javascript - 使用 html css 和 javascript 创建弹出框

c++ - 如何设置一个字符串数组,其中包含将通过数组显示在 iphone 文本上的字符串?

c# - 静态初始化保证单例线程安全? (C#)

构造函数中的 Javascript 函数不适用于 onclick

javascript - 导入 ngrx 开发工具时无法读取未定义的属性 'whitelist'

javascript - CSS3 从 'left' 属性过渡到 'right' 属性

将 char *buffer 中的数据复制/移动到 char info[4][10] 的多维数组

Javascript Array 以不同的方式表现

javascript - 在哪里放置另一个 javascript 类中的(类)依赖项?