Symbol.toPrimitive 屬性

admin發表於2017-04-24

物件的Symbol.toPrimitive屬性,指向一個方法。

該物件被轉為原始型別的值時,會呼叫這個方法,返回該物件對應的原始型別值。

Symbol.toPrimitive被呼叫時,會接受一個字串引數,表示當前運算的模式,一共有三種模式。

(1).Number :該場合需要轉成數值。

(2).String :該場合需要轉成字串。

(3).Default :該場合可以轉成數值,也可以轉成字串。

更多關於Symbol的內容可以參閱JavaScript Symbol一章節。

程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
let obj = {
  [Symbol.toPrimitive](hint) {
    switch (hint) {
      case 'number':
        return 123;
      case 'string':
        return 'str';
      case 'default':
        return 'default';
      default:
        throw new Error();
    }
  }
};
2 * obj // 246
3 + obj // '3default'
obj == 'default' // true
String(obj) // 'str'