一幅圖看懂prototype與[[Prototype]]

首先明確:函數

一、任何對象都有屬性[[Prototype]];this

二、只有函數有屬性prototype。spa

 

Pet爲父類,子類Dog繼承Pet。示意圖以下:prototype

 

繼承的樣例代碼:code

    // 父類構造函數
    function Pet(name,sound){
        var name = name;
        this.sound = "Pet says " + sound;
        this.getName = function(){
            console.log(name);
        };
    }
    // 父類原型
    Pet.prototype.voice = function(){
        console.log(this.sound);
    }

    // 子類
    function Dog(sound){            
        this.sound = "Dog syas " + sound;
    }

    // 繼承
    Dog.prototype = new Pet("pet","ohooo");
    Dog.prototype.constructor = Dog;

    // 繼承驗證
    var dog = new Dog("wangwang");
    dog.voice();//Dog syas wangwang
    dog.getName();//pet

 

Firefox中的顯示以下:

相關文章
相關標籤/搜索