iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
自我挑戰組

寫給自己看的前端學習筆記系列 第 18

寫給自己看的前端學習筆記 Day18

  • 分享至 

  • xImage
  •  

鐵人賽 Day 18

tags: 鐵人賽

在 JS 建立物件

有三種做法

  • 實字建立使用 {}
  • 使用 new 關鍵字
  • Object.create

大括號 {}

const cat = {eyes: 2, legs: 4}

new 關鍵字加上使用函式當建構式(Constructor)

function Animal(eyes, legs){
    this.eyes = eyes;
    this.legs = legs;
    this.characteristics = function(){
        console.log('I have' + this.eyes + 'eyes and' + this.legs+ 'legs')
    }
}

const horse = new Animal (2,4);
horse.characteristics();

Object.create

const Animal = {
    eyes: 0,
    legs: 0,
    characteristics:  function(){
        return 'I have' + this.eyes + 'eyes and' + this.legs+ 'legs'
 }
}
const cat = Object.create(Animal)
cat.eyes = 6;
cat.legs = 1;

console.log(cat)

// 印出來的物件
[object Object] {
  characteristics: function(){
        return 'I have' + this.eyes + 'eyes and' + this.legs+ 'legs'
 },
  eyes: 6,
  legs: 1
}

補充:可用 object.create(null,{...})做出一個乾淨的物件,這裡指的乾淨是指不會有原生 Object 所提供的屬性與方法

Prototype chain (原型鏈)

JS 沒有原生的 class 是用原型繼承的方法來讓沒有屬性的物件去存取其他物件的屬性。

Object.setPrototypeof(繼承者, 原型)
舉例: Object.setPrototypeof(a, b)
讓b成為a的原型


上一篇
寫給自己看的前端學習筆記 Day17
系列文
寫給自己看的前端學習筆記18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言