昨日書いたfirebugでのconsoleオブジェクトを使ったデバッグ方法ですが、firefoxにfirebugが入ってなかったり、IEだとconsoleオブジェクトが存在しないため、JavaScriptエラーになって処理が止まってしまいました…。なんちゅうことだ…。
このままだと、firebugがある場合だけ正常な動作をするアプリになってしまう!リリースするタイミングでconsole系のメソッド使ってるところを全部コメントアウトすればよいのかもしれないけれど、それはそれで面倒だし、なによりまたデバッグが必要になったときに困る!
解決策はないかな~とネットで探してみたら、まあ自分が考えていたような解決策とほぼ一致したので、じゃあそれでやってみるかと。
// consoleオブジェクトが未定義ならば if(typeof console == 'undefined'){ // 何も処理しないメソッドを持ったconsoleオブジェクトを定義する console = { log: function(){}, debug: function(){}, info: function(){}, warn: function(){}, error: function(){}, assert: function(){} }; }
consoleオブジェクトが持つメソッドはこれらだけではないのだけれど、自分が使ってるメソッドだけとりあえず定義しておけば大丈夫なんじゃなかろうか?
とりあえずはこれでJavaScriptエラーで止まるということはなくなった。