人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascript について質問です。

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

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

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

●質問者: satoshionoda
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:JavaScript 定義 目的 関数
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● tarotaro21323
●2ポイント

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

◎質問者からの返答

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


2 ● wizemperor
●39ポイント ベストアンサー

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

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

if( typeof init == 'function' )
 {
 init();
 }
◎質問者からの返答

動きましたー。

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

勉強になりました。


3 ● Sheile
●39ポイント
window.init ? init();

でいけるかと?

Firefox3/IE7で動作確認

◎質問者からの返答

こちらも動きました。

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

に直しましたが)

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ