Uncaught TypeError: Illegal invocation (JavaScript)
2011年1月25日
Chirome上のJavaScriptで、見慣れない、
Uncaught TypeError: Illegal invocation
というエラーが発生しました。
見慣れないエラーなので、ちょこっと調べました。
「ネイティブ関数の別名を作っちゃダメ!」エラー
ネイティブ関数の別参照を作ると発生するエラーとのことで、自分の場合は
var c = console.log;
の際に発生しました。
だめなものはダメなので、こういう風に書いちゃダメってことすねー。
ただ、この場合に限りなら、
意味合いは大分変わってしまいますが、
var c = function(value){console.log(value)};
とやれば、「console.logと書くのが面倒なので短くしたい」という目的は果たして、
エラーを回避できます。
Safariでも発生するようです。