[JavaScript] グローバルなメソッドを上書きする
globalThisを使ってメソッドの上書きをするメモ
日々の作業で出てきた技術メモの切れ端を置いておくページ
globalThisを使ってメソッドの上書きをするメモ
JSでwindowやglobalに定義されているメソッドを上書きしたいケースが(たまに)ある
自分の場合、fetchに介入して処理を差し込むということをデバッグで行いたかったため以下のようにして実行した。
const { fetch: originalFetch } = globalThis;
globalThis.fetch = (...args) => {
// なんかやる
return originalFetch(...args)
}
globalThisに生えているfetchを一旦変数に逃がしておいて、それを上書きした関数の中で呼ぶようにしないと無限に再帰呼び出しされてしまいスタックオーバーフローするため注意。