javascript - 如何让对象返回一个不是对象本身的值

标签 javascript javascript-objects

当创建一个 x = new Date() 对象时,如果将它放入 console.log(x) 中,将输出一个字符串。

有没有办法制作一个自定义对象,该对象将返回一个不是对象本身的不同值

最佳答案

有一个函数,toString ,但是如果你只是做 console.log(new Test) 它仍然会输出对象。但是,如果你强制它打印一个字符串,它将起作用:console.log('%s', new Test):

function Test() {
}

Test.prototype.toString =
  function () {
    return "Something else";
  }


console.log("%s", new Test);

> Something else

或者,如果您将它与另一个字符串连接起来:

var a = new Test;
console.log('Result: ' + a);

> Result: Something else

我在我的代码中经常使用它来显示带有数据的对象的内容摘要。

还有valueOf :

Test.prototype.valueOf =
  function () {
    return 42;
  }

console.log("%d", new Test);

> 3

关于javascript - 如何让对象返回一个不是对象本身的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41748793/

相关文章:

javascript - 代码点火器 3 : Submit to Controller in Ajax

javascript - 使用事件绑定(bind)的回车键将焦点从按钮切换到文本框

javascript - 使用递归函数重新排序

javascript - 属性在我的自定义构造函数中无法正常运行 - Javascript

JavaScript/设置从 0 开始递增索引

javascript - jQuery 中下拉搜索框的模糊问题

javascript - 通过 Id 使用新值更新数组的最佳方法

javascript - Chrome 的 JavaScript 控制台是否懒惰评估对象?

javascript - 从 XML 源创建 JavaScript 对象数组

javascript - 如何动态合并两个 JavaScript 对象的属性?