サーチ…
備考
コンストラクタ関数は実際には通常の関数ですが、特別なものはありません。上記の例で示した特別な動作を引き起こすのは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