1. ホーム
  2. javascript

[解決済み】JavaScriptで関数が存在するかどうかを確認する方法は?

2022-02-07 10:30:29

質問

私のコードは

function getID( swfID ){
     if(navigator.appName.indexOf("Microsoft") != -1){
          me = window[swfID];
     }else{
          me = document[swfID];
     }
}

function js_to_as( str ){
     me.onChange(str);
}

しかし、時々、私の onChange が読み込まれない。Firebugのエラーは

me.onChange は関数ではありません。

これは私のプログラムの中で最も重要な機能ではないので、優雅に劣化したいのです。 typeof は同じエラーを出します。

が存在することを確認し、その後にのみ onChange ?

(以下のメソッドは try catch 以外は動作しません。)

どのように解決するのですか?

こんな感じで試してみてください。

if (typeof me.onChange !== "undefined") { 
    // safe to use the function
}

またはもっと良い方法(UpTheCreekのupvotedコメントによる)。

if (typeof me.onChange === "function") { 
    // safe to use the function
}