Symbol.match 屬性

admin發表於2017-04-24

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

當執行str.match(obj)時,如果obj存在該屬性,會呼叫它,返回該方法的返回值。

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

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
class Matcher {
  [Symbol.match](string) {
    return "zone".indexOf(string);
  }
}
console.log("z".match(new Matcher()))

上面的程式碼會輸出"0",因為字元"z"位於字串"zone"第一個位置。

ES2015正規表示式在呼叫match()方法時,其實就是呼叫的regexp[Symbol.match]()。