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

  

相关文章:

  • 2022-12-23
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
  • 2021-08-04
  • 2022-12-23
  • 2022-12-23
  • 2021-12-29
猜你喜欢
  • 2021-08-17
  • 2022-12-23
  • 2022-12-23
  • 2021-12-07
  • 2022-01-09
  • 2022-12-23
  • 2021-08-27
相关资源
相似解决方案