tips chips

日々の作業で出てきた技術メモの切れ端を置いておくページ

[JavaScript] グローバルなメソッドを上書きする

globalThisを使ってメソッドの上書きをするメモ

JSでwindowやglobalに定義されているメソッドを上書きしたいケースが(たまに)ある

自分の場合、fetchに介入して処理を差し込むということをデバッグで行いたかったため以下のようにして実行した。

const { fetch: originalFetch } = globalThis; globalThis.fetch = (...args) => { // なんかやる return originalFetch(...args) }

globalThisに生えているfetchを一旦変数に逃がしておいて、それを上書きした関数の中で呼ぶようにしないと無限に再帰呼び出しされてしまいスタックオーバーフローするため注意。

参考資料

globalThis - JavaScript | MDN
globalThis はグローバルプロパティで、グローバルオブジェクトと同等であるグローバルな this が格納されています。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/globalThis
Intercept fetch() API requests and responses in JavaScript
I want to intercept fetch API requests and responses in JavaScript. For example, before sending the request I want to intercept the request URL. I'd like to intercept the response once it arrives a...
https://stackoverflow.com/questions/45425169/intercept-fetch-api-requests-and-responses-in-javascript