1. 程式人生 > >理解JS 原型鏈 ( 一 )

理解JS 原型鏈 ( 一 )

sdn all cal func images function typeof net 調用父類

原鏈接:http://blog.csdn.net/hongse_zxl/article/details/44622997

技術分享圖片

技術分享圖片

技術分享圖片

 1 //定義父類Person,構造函數內有兩個屬性name和age,原型對象內定義了sayName方法    
 2 function Person(name, age) {   
 3     this.name = name;   
 4     this.age = age;  
 5 }   
 6 Person.prototype.sayName = function(){   
 7     alert(this.name);   
8 } 9 10 //定義子類Man,讓其模擬繼承父類 11 Personfunction Man(name, age){ 12 Person.call(this, name, age); //子類中調用父類的構造函數 13 this.gender = "male"; //子類中定義個新屬性gender 14 } 15 16 Man.prototype = new Person(); //繼承是通過創建父類的原型對象,並將子類的prototype指針指向該原型對象來實現的。

17 Man.prototype.constructor = Person; 18 Man.prototype.sayGender = function (){ 19 alert(this.gender); 20 }; 21 22 var m1 = new Man("Jack", 32); 23 m1.sayName(); //Jack 24 m1.sayGender(); //male 25 var m2 = new Man("Zhang", 30); 26 m2.sayName(); //Zhang 27 m2.sayGender(); //
male 28 29 alert(m1 instanceof Object); //true,顯然創建的實例對象,既是Object,也是Person,也是Man 30 alert(m1 instanceof Person); //true 31 alert(m1 instanceof Man); //true 32 33 alert(Object.prototype.isPrototypeOf(m1)); //true 34 alert(Person.prototype.isPrototypeOf(m1)); //true 35 alert(Man.prototype.isPrototypeOf(m1)); //true

理解JS 原型鏈 ( 一 )