2011年03月18日
twitter の console.log() エラーよけ
Firebug が導入した console.log()
は最近のブラウザで標準的に実装されつつあります。
しかし、万が一、リリースコードに console.log
が混じり込んでしまうと、古いブラウザや開発ツールが導入されていないブラウザで JavaScript エラーになってしまってとても悲しくなります。
ということで、そういう場合にエラーを出さないようにするために、お手製の偽者 console オブジェクトを実装するテクニックがあります。ちょっと検索するといろいろ見つかります。
if (!window.console){ window.console = { log: function(){} }; }
確かに小さなプロジェクトでは、こういうおまじないを書いておくと安心だろうなー…と思っていたら、twitter のソースコードに次のようなコードを発見。
if (!window.console) { (function() { var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; window.console = {}; for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {} })(); }
新 UI になってからは、JavaScript の役割が大きくて、console.log
を残して JavaScript エラーを出してしまうと致命的だからでしょうか。念には念を押して、ということなのかもしれませんが、少しびっくりしました。
本題から外れますが、日本赤十字に10万円寄付してみました。さらに、はてなのポイントを450ほど寄付してみました。何もできないもどかしさが少しだけ軽くなったような気がします。被災された方々には、心からお見舞い申し上げます。一刻も早い復旧を心よりお祈り申し上げます。