javascript エラー「Uncaught TypeError: window[(xxx)] is not a function」の解決方法
- 作成日 2022.08.05
- javascript
- javascript
![javascript エラー「Uncaught TypeError: window[(xxx)] is not a function」の解決方法](https://mebee.info/wp-content/uploads/2022/02/javascript-1-890x500.png)
javascriptで、エラー「Uncaught TypeError: window[(xxx)] is not a function」が発生した場合の原因と解決方法を記述してます。
環境
- OS windows11 pro 64bit
- ブラウザ chrome 103.0.5060.134
エラー内容
以下の、関数名を変数として利用するため「window」オブジェクトを利用したコードを実行時に発生。
let fn_1 = () => {
console.log('fn1');
}
let fn_2 = () => {
console.log('fn2');
}
for (let i = 1; i < 3; i++) {
window['fn_'+i]()
}
エラーメッセージ
Uncaught TypeError: window[("fn_" + i)] is not a function
画像

firefox102の場合も同じエラーが発生します。
Uncaught TypeError: window[("fn_" + i)] is not a function
画像

原因
アロー関数に対して「window[]」は使用できないため
解決方法
通常の関数を使用するか、
function fn_1(){
console.log('fn1');
}
function fn_2(){
console.log('fn2');
}
for (let i = 1; i < 3; i++) {
window['fn_'+i]()
}
一旦、配列化して利用する
let fn_1 = () => {
console.log('fn1');
}
let fn_2 = () => {
console.log('fn2');
}
const arr = [fn_1,fn_2]
for (let i = 0; i < 2; i++) {
arr[i]()
}
実行結果

-
前の記事
PostgreSQL 取得する位置を指定する 2022.08.05
-
次の記事
VSCODE gitの履歴をグラフで確認する 2022.08.05
コメントを書く