跳到主要内容

对象方法

toString() 方法

toString()方法不接收参数,返回表示调用它的对象的值的字符串。

let s = { x: 1, y: 1 }.toString()
定义自己的toString()方法
let point = {
x: 1,
y: 2,
toString: function () {
return `(${this.x},${this.y})`
},
}
console.log(point.toString()) // (1,2)

toLocaleString() 方法

返回对象的本地化字符串表示

自定义自己的 toLocaleString()
let point = {
x: 1,
y: 2,
toString: function () {
return `(${this.x},${this.y})`
},
toLocaleString: function () {
return `(${this.x.toLocaleString()},${this.y.toLocaleString()})`
},
}
console.log(point.toString()) // (1,2)
console.log(point.toLocaleString()) // (1,2)

valueOf() 方法

valueOf()方法与 toString()方法很相似,但会在 JavaScript 需要把对象转换为某些非字符串原始值(通常是数值)时被调用。

toJSON() 方法

Object.prototype 实际上并为定义 toJSON 方法,但 JSON.stringify()方法会从来序列化的对象中寻找 toJSON()方法。

let point = {
x: 1,
y: 1,
toString: function () {
return `(${this.x},${this.y})`
},
toJSON: function () {
return this.toString()
},
}
JSON.stringify([point])