console.logのエイリアス

http://ginpen.com/2011/12/16/apply-to-through/

function log() {
  // console.logが使えればそれで出力
  if (window.console && console.log) {
    console.log.apply(console, arguments);
  }
  // consoleが使えなければalert()で出力
  else {
    // alert()は引数がひとつだけなので、結合してから渡す
    var text = Array.prototype.join.apply(arguments, [', ']);
    alert(text);
  }
}
log("abc", 1 + 99);

これだと出力されたとき(主にchromeのdev toolsのときの話し)の行数がconsole.log.applyのところになっちゃうので個人的にはこっちのほうがいい。

var log = (function() {
  if (window.console && console.log) {
    return console.log.bind(console);
  }
  else {
    return function() {
      var text = Array.prototype.join.apply(arguments, [', ']);
      alert(text);
    }
  }
})();
log("abc", 1 + 99);

これだとlog()実行したところの行数が出る。