javascript エラー「Uncaught TypeError: callback is not a function」の解決方法

javascript エラー「Uncaught TypeError: callback is not a function」の解決方法

javascriptで、エラー「ReferenceError: Can’t find variable: moment」が発生した場合の原因と解決方法を記述してます。「callback」関数を使用時に引数に関数をしていない場合に発生します。「chrome」や「firefox」や「safari」の各ブラウザのエラーメッセージの画像もキャプチャしてます。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 109.0.5414.120

エラー内容

以下の、「callback」を使用した関数作成時に際に発生。

function fn(callback) {
  return callback();
}

fn();

エラーメッセージ

Uncaught TypeError: callback is not a function

画像

firefox106の場合でも同じエラーが発生します。

Uncaught TypeError: callback is not a function

画像

safari15.5では、以下のエラーとなります。

TypeError: callback is not a function. (In 'callback()', 'callback' is undefined)

画像

原因

「callback」関数を引数として、関数に渡していないため

解決方法

引数として「callback」関数を渡してあげるか、

function fn(callback) {
  return callback();
}

fn(function(){console.log('sample')});

// アロー関数でも大丈夫です
fn(() => {console.log('sample')});

関数であるかを判定してから使用します。

function fn(callback) {
  if (typeof callback === 'function') {
    return callback();
  }
}

fn();