ES6基礎知識——設置對象的prototype Object.setPrototypeOf()

Object.setPrototypeOf()能夠在建立對象之後去改變對象的prototype

 

例子:這裏定義了兩個對象:
let breakfast = {
  getDrink(){
    return 'tea'
  }
}

let dinner ={
  getDrink(){
    return 'bear'
  }
} 

 

下面使用Object.create()方法建立一個基於breakfast的對象sunday,能夠看到sunday的getDrink()方法返回的就是breakfast對象裏的getDrink()方法返回的字符串
let sunday = Object.create(breakfast)
console.log(sunday.getDrink()); //tea
//判斷sunday這個對象的prototype是否等於breakfast
console.log(Object.getPrototypeOf(sunday)===breakfast) //true

  



從新設置一下sunday的prototype,用的是Object.setPrototypeOf(),第一個參數是要設置的對象sunday,第二個參數是要設置成的那個prototype對象dinner,返回sunday.getDrink()
Object.setPrototypeOf(sunday,dinner);
console.log(sunday.getDrink()); //bear
console.log(Object.getPrototypeOf(sunday)=== dinner); //true
相關文章
相關標籤/搜索