为什么我的对象使用等号而不是分号/对象文字符号记录?

Why are my objects being logged with equals signs rather than semicolons / object literal notation?

我在弄清楚如何让我的构造函数以对象文字表示法创建我的草稿电子邮件 ID/主题数组时遇到了最困难的时间。

具体来说,我创建了构造函数,将每个电子邮件草稿的主题和 ID 作为一个对象放入数组中:

function draft(id, subject) {
  this.emailId = id;
  this.emailSubject = subject;
}

然后,当我使用这个构造函数将几封电子邮件放入数组时(下面的代码使用我手动设置的数据作为测试)......

function seeDraftMessages() {
  var testArray = [];
  testArray.push(new draft(12412, 'test subject 1'));
  testArray.push(new draft(75162, 'test subject 2'));
  var testArrayDetails = [];
  testArray.forEach(function(msg) {
    Logger.log(msg);
  });
};

我在日志中得到这个输出:

[19-05-22 14:35:06:863 CDT] {emailId=12412.0, emailSubject=test subject 1}
[19-05-22 14:35:06:864 CDT] {emailId=75162.0, emailSubject=test subject 2}

问题是这些对象不是对象文字表示法,所以我很难在 HTML 界面中使用它们。我需要它们像这样格式化,而不是:

[19-05-22 14:35:06:863 CDT] {emailId: '12412', emailSubject: 'test subject 1'}
[19-05-22 14:35:06:864 CDT] {emailId: '75162', emailSubject: 'test subject 2'}

如有任何帮助,我们将不胜感激!

戴维斯

Logger.log 将它们转换为 = 以供显示。基础数据仍然是一个有效的 JavaScript 对象。

尝试

Logger.log(JSON.stringify(msg));