iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
自我挑戰組

轉職仔與JavaScript的初次相遇系列 第 20

JavaScript的Constructor function(建構式函式) - Day20

  • 分享至 

  • xImage
  •  

前言

今天我們將講解JavaScript的Constructor function(建構式函式),解釋其存在原因以及如何判別

說明

為何要有Constructor function呢?

為了方便創造多個具有相同屬性和方法的物件

如何判斷是Constructor function呢?
若函式被調用時使用了new關鍵字,此時函式就會被當成是constructor function

如果要針對汽車品牌建立ford和toyota Object,我們可以分別建立

let ford = {
    brand: 'ford',
    year: 10,
    init: function() {
        console.log(this.brand + ' engine start');
    }
};

let toyota = {
    brand: 'toyota',
    year: 15,
    init: function() {
        console.log(this.brand + ' engine start');
    }
};

然而汽車Object其實都是『品牌名稱以及車輛生產年份』
藉由此共通點,此時就可以使用Constructor function

function Car(brand, year){ 
    this.brand = brand;
    this.year = year;
    this.init = function(){
      console.log(this.brand + ' engine start');
    };
}

//透過Car建立兩個function(ford, toyota)
let ford = new Car('ford', 10); //填入ford和10至Car的參數中
let toyota = new Car('toyota', 15); //填入toyota和15至Car的參數中

console.log(ford); //Car {brand: 'ford', year: 10}
console.log(toyota); //Car {brand: 'toyota', year: 15}
toyota.init(); //toyota engine start

此外通常Constructor function名稱第一個字會採用大寫


上一篇
JavaScript的this keyword(this關鍵字) - Day19
下一篇
JavaScript的Prototype inheritance(原型繼承) - Day21
系列文
轉職仔與JavaScript的初次相遇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言