中学理科1631666 views
中学数学624193 views
高校化学2926977 views
りんご213160 views
高校生物552189 views
高校日本史190688 views
LaTeX963205 views
Computer368747 views
高校国語788848 views
世界の国565381 views
Help
Tools

English

JavaScript の window オブジェクトに登録した関数を削除する

window に登録した関数(つまりグローバル関数)を削除するには、delete 演算子を使う。ただし、いくつかの注意点がある。

// 登録
window.myFunction = function() {
console.log('test')
}

// 呼び出し
myFunction() // → test

// 削除
delete window.myFunction

// 確認
console.log(typeof myFunction) // → "undefined"

注意点

let や const で定義した関数は削除できない(delete は無効)
var または window.xxx = 形式で定義した場合のみ削除可能
Strict モードでは delete が失敗するとエラーになる

つまり、グローバルスコープにある関数でも、どのように定義したかによって削除できるかが決まる。

// 削除できない例
function test() {}
delete window.test // false(削除されない)

// 削除できる例
window.test = function() {}
delete window.test // true(削除される)

このように、function 宣言ではなく プロパティとして代入した関数 であれば delete で安全に消せる。