1. 程式人生 > >JavaScript 的 原型和原型鏈

JavaScript 的 原型和原型鏈

在JavaScript中,陣列,物件和函式被稱為引用型別,他們都有一個__proto__屬性,該屬性是一個物件(我們稱之為隱式原型)
在這裡插入圖片描述
陣列的建構函式是Array,Array建構函式中有一個prototype屬性,(我們暫時稱之為顯式原型)
在這裡插入圖片描述
arr是建構函式的例項物件,arr中的__proto__物件指向建構函式中的prototype物件
在這裡插入圖片描述
demo

    function Animal(name) {
        this.name = name;
    }

    Animal.prototype.eat = function () {
        console.log('Animal is eat');
    };

    let dog = new Animal('dog');
    
    console.dir(dog);

dog物件 的屬性:
在這裡插入圖片描述
呼叫dog的屬性和方法時,會先從dog本身去查詢,如果dog本身沒有那個屬性或方法,就會去dog的__proto__原型中去查詢,而__proto__又指向Animal的prototype(看第二個constructor物件,指向Animal),這就是原型鏈
在這裡插入圖片描述