📅  最后修改于: 2023-12-03 15:01:38.361000             🧑  作者: Mango
valueOf()
方法是 JavaScript 中一种重要的内置函数。它可以从一个对象中获取它的原始值。对于大多数对象,其 valueOf()
方法返回的都是对象本身,而对于一些内置对象,比如 Number
、String
、Boolean
等,它们在实例化时就重写了 valueOf()
方法,使其返回的是对象的原始值。
obj.valueOf()
其中,obj
为需要获取原始值的对象。
valueOf()
方法返回一个对象的原始值,如果调用该方法的对象不是对象类型,则该方法会直接返回该对象本身。
const obj = {
val: 123,
valueOf() {
return this.val;
}
}
console.log(obj); // { val: 123, valueOf: [Function: valueOf] }
console.log(obj.valueOf()); // 123
在上面的代码中,obj
对象中的 valueOf()
方法被重写为返回 obj.val
。因此,当我们调用 obj.valueOf()
方法时,会返回 123
这个原始值。
console.log('hello'.valueOf()); // 'hello'
console.log((5).valueOf()); // 5
console.log(true.valueOf()); // true
由于字符串、数字、布尔值都是 JavaScript 中的基本数据类型,当我们调用它们的 valueOf()
方法时,会直接返回它们本身。
Object.prototype.valueOf()
方法可以用于获取对象的原始值,但是在一些特定的对象上,其 valueOf()
方法被重写,返回了对象的原始值。