サーチ…


備考

コンストラクタ関数は実際には通常の関数ですが、特別なものはありません。上記の例で示した特別な動作を引き起こすのはnewキーワードだけです。必要に応じてコンストラクタ関数を通常の関数のように呼び出すことができます。 this場合、 this値を明示的にバインドする必要があります。

コンストラクタ関数の宣言

コンストラクタ関数は、新しいオブジェクトを構築するために設計された関数です。コンストラクタ関数内で、キーワードthisは、値を割り当てることができる新しく作成されたオブジェクトを参照します。コンストラクタ関数はこの新しいオブジェクトを自動的に "返す"。

function Cat(name) {
  this.name = name;
  this.sound = "Meow";
}

コンストラクタ関数は、 newキーワードを使用して呼び出されます。

let cat = new Cat("Tom");
cat.sound; // Returns "Meow"

コンストラクタ関数には、そのコンストラクタで作成されたすべてのオブジェクトによってプロパティが自動的に継承されるオブジェクトを指すprototypeプロパティもあります。

Cat.prototype.speak = function() {
  console.log(this.sound);
}

cat.speak(); // Outputs "Meow" to the console

コンストラクタ関数によって作成されたオブジェクトには、その作成に使用された関数を指すconstructorというプロトタイプの特別なプロパティもあります。

cat.constructor // Returns the `Cat` function

コンストラクタ関数によって作成されたオブジェクトは、 instanceof演算子によってコンストラクタ関数の「インスタンス」ともみなされます。

cat instanceof Cat // Returns "true"


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow