ES6基础之——指向当前对象的原型对象 super

let breakfast = {
  getDrink(){
    return 'tea'
  }
};


let dinner = {
  getDrink(){
    return 'beer'
  }
};


let sunday = {
  __proto__:breakfast
}

  

这里把sunday的prototype设置成了breakfast,这样它就拥有了breakfast这个对象里的getDrink方法
不过现在,想在sunday里面重新定义getDrink方法去覆盖breakfast对象里的getDrink方法,并且想得到sunday对象里得到breakfast对象里的getDrink方法返回来的东西,这时就可以使用super加上方法的名字来得到方法返回来的东西。

 

let breakfast = {
  getDrink(){
    return 'tea'
  }
};



let dinner = {
  getDrink(){
    return 'beer'
  }
};



let sunday = {
  __proto__:breakfast,
  getDrink(){
    return super.getDrink() + 'milk';
  }
}
 

console.log(sunday.getDrink());   //tea milk

  

 

因为在上面把sunday的prototype设置成了breakfast,super.getDrink()意思就是执行下breakfast对象里的getDrink()方法,去得到它返回来的东西
posted @ 2019-06-29 09:46  qnlz  阅读(609)  评论(0编辑  收藏  举报