jQuery.class.jsのバグ修正とconsole.logのお話
この記事は賞味期限切れです。(更新から1年が経過しています)
jQueryでPrototype.js風のクラス定義をしてみる
で公開していたスクリプトで見つかった不具合が、意外と盲点だったので自戒として記録。
ただ単純にチェック不足なだけでしたが…悔しい。
ソース
mach3’s js-jquery-class at master – GitHub
あるの?ないの?console.log
引っかかったのは、インスタンスにlogメソッドを生やしている部分。
console.logの有無で分岐をした…つもりだったんですが、
if( $.isFunction( console.log ) ){ ... }
当たり前なのですが、
console.logが、というかconsoleがなければここで処理は止まってしまいます…。
なんでこんなのに気付かなかったのかというと、IE8で処理が止まらなかったから。
なぜなら、consoleもconsole.logも有るから!(実は知らなかったーー!!)
そんなわけで、条件を修正。
なんかもうちょっとスマートに書きたいですが…
typeof(console)!=="undefined" && typeof(console.log)!=="undefined"
IE8の開発者ツールをちゃんと使って無かったって事ですね。反省。
でも次からは楽になりますね!
追記 : 2013/10/13
実は、これでいいですよね。
!! window.console && !! window.console.log
この不具合、特別必要なかったオマケ機能だった事もあって、結構悔しいです…
コメント
でも大丈夫ではないですか?</p>