9

重複の可能性:
関数が存在しない場合、書き込み関数 - JavaScript

関数 X が呼び出されている状況があります。いくつかのポストバックの後、この関数は宣言されなくなりましたが、コードによってまだ呼び出されています.jsエラーが表示されますX is not defined. (必要に応じてバグと呼んでください)しかし、それを呼び出さないことや呼び出し機能を変更することは私の管理下にはありません。

私がやりたいのは、そのような関数が存在しない場合に宣言するフェイルセーフです。したがって、ロジックは次のとおりです。

関数が宣言されていない場合は、関数を宣言します。

つまり、グローバルスコープで関数を動的に宣言/登録することは可能ですか?

ありがとう。

4

2 に答える 2

9
if (typeof window.functionX === 'undefined') {
    window.functionX = function() {
      // fallback code here
    }
}
于 2012-11-28T09:27:59.733 に答える
4

もちろんそうだ

if(!myFunc) {
  myFunc = function() {}
}
于 2012-11-28T09:25:19.277 に答える