alertとconsole.logをラップする関数

投稿日:

うわ〜、もう7月やわ今年も半分終わっとるわ(白目)。

さて、ちょっと前にこんな記事を見かけました。

HTML – IEユーザーを撲滅させるためのjavascript。さぁ今すぐWEBサイトに組み込もう! – Qiita [キータ]

うぇww まじやべぇwww あれ?でもそんなに使うかな?
使わないか。。いや、、待てよ、、、ピコーン!
IEでデバッグする時、console.logをわざわざ消したりしてalertっていちいち書いてる!
って思って書きました。

alertとconsole.logをラップする関数

使い方 ※呼べばいいだけ

 
// まずは読み込みます
;(function(ns){
    if(typeof ns.alog === 'function') return;

    ns.alog = function(){
        var args = [].slice.call(arguments).concat();

        if (/*@cc_on!@*/false) {
            return alert(args);
        }

        return console.log(args);
    }
})(window);

function Hoge(n){ this.name= n; }
Hoge.prototype = {
    piyo: function(){ alog(this.name); }
}
var hoge = new Hoge('taro');

hoge.piyo();

alog('うなんぞこれ', 'はかどるな', [1, 2, hoge]);

これを使えばIEだとalertが呼ばれて、それ以外のブラウザはconsole.logが呼ばれます。
うん。これでIEで怒られない。※IE6では確認済み

名前はalertとconsole.logを混ぜました。
他にも似たようなものはいっぱいあると思いますがメモ的な感じで。

個人的には引数を2つ以上渡せるから、元のalertより使い勝手がいいかなと思っています。
もし良ければ、お試しあれ。

こちらも参考にさせて頂きました

argumentsとArray.prototype.slice.call : JavaScript FindxFine | Web制作に関するメモ

Array.slice – JavaScript | MDN
slice メソッドは 「配列の様なオブジェクト」も変換する事が可能です。配列の様なオブジェクトの一例として、arguments(関数が受け取った引数)が挙げられます。以下に例を示します。

Pocket

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です