JavaScript で関数が存在するかどうかを確認するにはどうすればいいですか? 質問する

JavaScript で関数が存在するかどうかを確認するにはどうすればいいですか? 質問する

私のコードは

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 one 以外の以下の方法はどれも機能しません)

ベストアンサー1

次のようなことを試してください:

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

あるいはもっと良いのは(UpTheCreekの賛成コメントによる)

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

おすすめ記事