# 概述
valueOf 和 toString 是对象的两个内置方法,它们用于将对象转换为原始值或字符串。每个对象都从 Object.prototype 继承了这两个方法,并且可以根据需要重写它们。
# valueOf
强制数字类型转换和强制基本类型转换优先会调用 valueOf
# toString
强制字符串转换会优先调用 toString
# valueOf 与 toString 的区别
| 特性 | valueOf | toString |
|---|---|---|
| 目的 | 返回对象的原始值 | 返回对象的字符串表示 |
| 默认行为 | 返回对象本身(引用),多数对象不会覆盖 | 返回 “[object Object]”,可被覆盖 |
| 调用场景 | 数学运算、比较操作 | 字符串拼接、显示对象信息 |
# 代码
1 | const myObj = { |
# 总结
- valueOf 用于将对象转换为原始值,常用于数学运算或比较。
- toString 用于将对象转换为字符串,常用于字符串拼接或显示对象信息。
- JavaScript 会根据上下文自动选择调用 valueOf 或 toString,也可以通过重写这两个方法来控制对象的行为。
