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()方法,去獲得它返回來的東西
相關文章
相關標籤/搜索