Firefox Tomorrow

javascript static data property

Symbol.replace

View on MDN ↗

The Symbol.replace static data property represents the well-known symbol Symbol.replace. The replace() and replaceAll() methods look up this symbol on their first argument for the method that replaces substrings matched by the current object.

For more information, see RegExp.prototype[Symbol.replace](), replace(), and replaceAll().

Interactive exampleOpen the canonical MDN source to run this embedded demo.
class Replace1 {
  constructor(value) {
    this.value = value;
  }
  [Symbol.replace](string) {
    return `s/${string}/${this.value}/g`;
  }
}

console.log("foo".replace(new Replace1("bar")));
// Expected output: "s/foo/bar/g"

Value

The well-known symbol Symbol.replace.

0

Examples

Using Symbol.replace

class CustomReplacer {
  constructor(value) {
    this.value = value;
  }
  [Symbol.replace](string) {
    return string.replace(this.value, "#!@?");
  }
}

console.log("football".replace(new CustomReplacer("foo"))); // "#!@?tball"

Specifications

SpecificationsStandards references are available on the canonical MDN page.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.

See also