鍍金池/ 問(wèn)答/HTML/ 如何理解類(lèi)的__proto__

如何理解類(lèi)的__proto__

    class CoolArray extends Array {
      pishaaa() {
        this.push("aaa")
      }
    }

    var arr = new CoolArray

建立一個(gè)新的類(lèi),并實(shí)例化
圖片描述

如何理解這2個(gè)_proto__
當(dāng)我調(diào)用arr.push()這個(gè)方法的時(shí)候,是調(diào)用的Array上的方法還是CoolArray?

回答
編輯回答
命于你

Array.prototype的push ,你自己構(gòu)建的這個(gè)對(duì)象里面又沒(méi)有 push 方法

2018年3月17日 10:32
編輯回答
拽很帥

你調(diào)用的方法先會(huì)查詢(xún)當(dāng)前實(shí)例上是否有對(duì)應(yīng)的方法,如果有就直接調(diào)用;沒(méi)有,就會(huì)沿著原型鏈一直往上找。

2017年6月30日 07:36
編輯回答
維她命

同意二樓說(shuō)法。chass是es6新增的類(lèi),建議選去學(xué)會(huì)es5中構(gòu)造函數(shù)類(lèi)繼承的概念,可以看看《深入理解JS》

2017年4月23日 03:26
編輯回答
吃藕丑

Array.protoType上的push,建議你先用es5的構(gòu)造函數(shù)寫(xiě)一遍,然后再用es6的class.估計(jì)你就懂了.

2018年4月17日 09:39
編輯回答
愛(ài)是癌

這就是面向?qū)ο笳Z(yǔ)言通用的父類(lèi)和繼承(擴(kuò)展)的概念,所有子類(lèi)沒(méi)有的屬性和方法會(huì)在父類(lèi)或父類(lèi)的父類(lèi)。。。中查找。既然你這里沒(méi)有覆蓋對(duì)應(yīng)的方法,那么自然調(diào)用的是父類(lèi)的該方法

2018年4月1日 09:06