【JavaScript ECMAScript】TypeError: calling a builtin X constructor without new is forbiddenエラーの使い方
TypeError: calling a builtin X constructor without new is forbiddenエラーの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
TypeError: calling a builtin X constructor without new is forbiddenオブジェクトは、JavaScriptにおいて、組み込みオブジェクトのコンストラクタ関数をnewキーワードなしで呼び出そうとした際に発生するTypeErrorの一種を表すオブジェクトです。
JavaScriptにはArray、Object、Date、RegExp、Promiseなど、様々な組み込みオブジェクトが存在します。これらのコンストラクタ関数は、一般的にnew演算子を使用して新しいインスタンス(特定の型のオブジェクト)を生成するために設計されています。例えば、new Array()と記述することで新しい配列オブジェクトを作成します。しかし、プログラマーが誤ってnewを付けずにArray()のようにコンストラクタ関数を直接呼び出してしまうと、このエラーが発生します。
このエラーは、ES6(ECMAScript 2015)以降のJavaScriptの仕様において、一部の組み込みコンストラクタ関数がnewなしでの呼び出しを明示的に禁止するように変更されたために導入されました。この変更の目的は、newなしでの呼び出しが予期しない動作を引き起こしたり、グローバルオブジェクトに意図しない変更を加えたりする可能性を排除し、コードの安全性と予測可能性を高めるためです。
このエラーが発生した場合は、該当する組み込みコンストラクタ関数を呼び出している箇所を確認し、必ずnewキーワードを付加するように修正してください。例えば、Promise((resolve, reject) => { ... })と記述されている場合は、new Promise((resolve, reject) => { ... })と修正することで、エラーを解消し、正しくオブジェクトのインスタンスを生成することができます。
構文(syntax)
1Error('これはエラーメッセージです');
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません