ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

Illegal invocationエラーとは

最近javascriptでちょっとしたツール作ってたら
初めて見たエラー出た

Uncaught TypeError: Illegal invocation

なにこれ

ちょっと調べてみると安定と信頼のstackoverflow様

stackoverflow.com

何回も書くのめんどくさくて

const $ = document.querySelectorAll

って書いてたんだけど
ネイティブの関数の別名作れないんですね

解決法というかなんというか

別名は作れないが関数でラップすれば似たようなことできる

// es2015のarrow function使える場合
const $ = q => document.querySelectorAll(q)

// 使えない場合
const $ = function(q) { return document.querySelectorAll(q); }

es2015のパターンだとまだすっきり書けるので良い