MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

TypeError: "x" is not a constructor

メッセージ

TypeError: "x" is not a constructor

TypeError: Math is not a constructor
TypeError: JSON is not a constructor
TypeError: Symbol is not a constructor
TypeError: Reflect is not a constructor
TypeError: Intl is not a constructor
TypeError: SIMD is not a constructor
TypeError: Atomics is not a constructor

エラータイプ

TypeError

何がうまくいかなかったのか?

オブジェクト、または変数をコンストラクタとして使おうとしていますが、それらがコンストラクタではありません。コンストラクタとは何かについては、constructornew 演算子を見てください。

StringArray のような、new を使用して生成できる数多くのグローバルオブジェクトがあります。しかし、いくつかのグローバルオブジェクトはそうではなく、 それらのプロパティやメソッドは静的です。次の JavaScript 標準ビルトインオブジェクトは、コンストラクタではありません:MathJSONSymbolReflectIntlSIMDAtomics

function* は、いづれかのコンストラクタとして使用することはできません。

無効なケース

var Car = 1;
new Car();
// TypeError: Car is not a constructor

new Math();
// TypeError: Math is not a constructor

new Symbol();
// TypeError: Symbol is not a constructor

function* f() {};
var obj = new f;
// TypeError: f is not a constructor

car コンストラクタ

車のためのオブジェクト型を生成するとします。このオブジェクトの型が car と呼ばれ、make と model、year プロパティを持つとします。これを行うには、次の関数を定義します:

function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}

次のように mycar と呼ばれるオブジェクトを生成できます:

var mycar = new Car("Eagle", "Talon TSi", 1993);

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,