コンテンツへスキップ
JavaScriptエラーエラー
TypeError: Method called on incompatible receiver

TypeError: 非互換なレシーバでメソッドが呼び出された

期待される型ではない 'this' 値でメソッドが呼び出された。

browsernode

このエラーの原因

オブジェクトからメソッドを取り出し、正しいコンテキストなしに呼び出した。Map.prototype.get などの組み込みメソッドは Map インスタンス上で呼び出す必要がある。分割代入やコールバックとしてメソッドを渡すとコンテキストが失われる。

修正方法

メソッドをオブジェクトにバインドします: const get = map.get.bind(map)。またはアロー関数で包みます: (key) => map.get(key)。メソッドを取り出さずに、オブジェクトに対して直接呼び出してください。

例

const fn = Map.prototype.get; fn.call({}, 'key'); // TypeError
公式ドキュメント

関連するエラーコード