在 JavaScript 中,valueOf() 方法是一個可以被對象調用的方法,用于返回該對象的原始值。它可以被所有對象類型(包括自定義對象)調用,并返回一個原始值,例如字符串、數字、布爾值等。
對象
下面是一個示例,展示了在 JavaScript 中對象使用 valueOf() 方法:
let myObj = {
name: "Quintion",
age: 30,
toString() {
return `${this.name} 年齡 ${this.age}`;
},
valueOf() {
return this.age;
},
};
console.log(myObj.toString()); // Quintion 年齡 30
console.log(myObj.valueOf()); // 30
數字
在 JavaScript 中的數字是 Number 類型的實例,具有 valueOf() 方法,返回一個數字對象的原始值。
例如,如果有一個數字對象 num,可以使用 valueOf() 方法獲取它的原始值,如下所示:
const num = new Number(42);
console.log(num.valueOf()); // 42
大多數情況下,JavaScript 引擎會自動將數字對象轉換為數字類型,因此通常不需要使用 valueOf() 方法來獲取數字對象的值。例如:
const num = new Number(42);
const result = num + 10;
console.log(result); // 52
字符串
字符串是 String 類型的實例,也具有 valueOf() 方法,返回一個字符串對象的原始值。
例如,如果有一個字符串對象 str,可以使用 valueOf() 方法獲取它的原始值,如下所示:
const str = new String("hello");
console.log(str.valueOf()); // 'hello'
同樣,JavaScript 引擎會自動將字符串對象轉換為字符串類型,因此不需要使用 valueOf() 方法來獲取字符串對象的值。例如:
const str = new String("hello");
const result = str + " world";
console.log(result); // 'hello world'
上面代碼 str 會被自動轉換為字符串類型,因此可以將它與另一個字符串連接起來。