宣告建構函式

建構函式是用於構造新物件的函式。在建構函式中,關鍵字 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"