【valueOf】valueOf函数的介绍


valueOf() 係 JavaScript 裏面嘅一個方法,用嚟返回一個對象嘅「原始值」(primitive value)。

大部分情況下,你唔會直接調用 valueOf(),因為 JS 喺需要時會自動幫你調。

1. 基本用法

1
2
3
4
5
6
7
8
let num = new Number(123);
console.log(num.valueOf()); // 123 (原始 number)

let str = new String("hello");
console.log(str.valueOf()); // "hello" (原始 string)

let bool = new Boolean(true);
console.log(bool.valueOf()); // true

2. 普通對象嘅情況

對於一般的 ObjectvalueOf() 預設係返回自己:

1
2
let obj = { a: 1 };
console.log(obj.valueOf()); // { a: 1 }

3. 你可以自定義

如果你想控制「一個對象被轉換成原始值」時嘅表現,可以 override valueOf()

1
2
3
4
5
6
7
8
let money = {
amount: 1000,
valueOf() {
return this.amount;
}
};

console.log(money + 500); // 1500

j m 因為運算符 + 遇到對象會先試 valueOf(),攞返原始值嚟計。


4. 典型用途

  • 數字/日期對象轉換成 primitive
  • 控制物件同數字/字串混合運算嘅表現
  • 在運算符上下文(+, -, *, <, == …)需要自定義邏輯