javascript について質問です。


ある関数が定義されていたら、その関数を実行するということをしたいのです。
そこで、
init ? init() : '';
としてあげたら、init is not defined と怒られてしまいました。

ちなみに、if(init != undefined) {init();}
としても結果は同じです。

何とかこのような目的を達成する方法はありませんでしょうか?
どなたか詳しい方、教えていただけますと助かります。

回答の条件
  • 1人2回まで
  • 登録:2008/07/31 22:34:58
  • 終了:2008/07/31 23:21:34

ベストアンサー

id:wizemperor No.2

wizemperor回答回数379ベストアンサー獲得回数522008/07/31 22:58:02

ポイント39pt

関数もオブジェクトの一種です。

よって、オブジェクトの型を調べることで可能。

if( typeof init == 'function' )
    {
        init();
    }
id:satoshionoda

動きましたー。

typeof を使うと対象がが見つからないときのエラーが出ないんですね。

勉強になりました。

2008/07/31 23:17:37

その他の回答(2件)

id:tarotaro21323 No.1

tarotaro21323回答回数7ベストアンサー獲得回数02008/07/31 22:40:20

ポイント2pt

javascript に例外ハンドリング機能があればそれを利用したらいいのではないでしょうか。

id:satoshionoda

すいません、具体的に動作するコードを書いていただけますか?

2008/07/31 22:47:12
id:wizemperor No.2

wizemperor回答回数379ベストアンサー獲得回数522008/07/31 22:58:02ここでベストアンサー

ポイント39pt

関数もオブジェクトの一種です。

よって、オブジェクトの型を調べることで可能。

if( typeof init == 'function' )
    {
        init();
    }
id:satoshionoda

動きましたー。

typeof を使うと対象がが見つからないときのエラーが出ないんですね。

勉強になりました。

2008/07/31 23:17:37
id:sheile No.3

Sheile回答回数45ベストアンサー獲得回数162008/07/31 22:53:13

ポイント39pt
window.init ? init();

でいけるかと~

Firefox3/IE7で動作確認

id:satoshionoda

こちらも動きました。

(window.init ? init() : '';

に直しましたが)

windowを使うとよい、というのも新鮮です。

どうもありがとうございました。

2008/07/31 23:20:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません