This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The delete() method of WeakMap instances removes the entry specified by the key from this WeakMap.
const weakmap = new WeakMap();
const object = {};
weakmap.set(object, 42);
console.log(weakmap.delete(object));
// Expected output: true
console.log(weakmap.has(object));
// Expected output: false
weakMapInstance.delete(key)
true if an entry in the WeakMap object has been removed successfully. false if the key is not found in the WeakMap. Always returns false if key is not an object or a non-registered symbol.
const wm = new WeakMap(); wm.set(window, "foo"); wm.delete(window); // Returns true. Successfully removed. wm.has(window); // Returns false. The window object is no longer in the WeakMap.
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
delete |
36 | 12 | 6Before Firefox 38, this method threw aTypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard. |
23 | 8 | 36 | 6Before Firefox for Android 38, this method threw aTypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard. |
24 | 8 | 3.0 | 37 | 8 | 1.0.0 | 1.0 | 0.12.0 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/delete