首先明確:
1、任何對象都有屬性[[Prototype]];
2、只有函數有屬性prototype。
prototype如何理解,?
Pet為父類,子類Dog繼承Pet。示意圖如下:
?
prototype和proto區別、繼承的樣例代碼:
// 父類構造函數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 wangwangdog.getName();//pet
?
Firefox中的顯示如下:
?