1. 程式人生 > >JS學習(三) 原型(prototype)

JS學習(三) 原型(prototype)

//原型(prototype),通過使用原型,JavaScript 可以建立繼承,從而體現物件的層次關係。

//JavaScript 本身是基於原型的,每個物件都有一個 prototype 的屬性,這個 prototype 本身也是一個物件,
//因此它本身也可以有自己的原型,這樣就構成了一個鏈結構。
//訪問一個屬性的時候,解析器需要從下向上的遍歷這個鏈結構,直到遇到該屬性
//則返回屬性對應的值,或者遇到原型為 null 的物件(JavaScript 的基物件 Object 的構造器的預設prototype 有一個 null 原型),如果此物件仍沒有該屬性,則返回 undefined
 
function Base

(name){
    this.name = name;
    this.getName = function (){
        return this.name;
    }
}
 
function Child(id){
    this.id = id;
    this.getId = function () {
        return this.id;
    }
   }
//由於遍歷原型鏈的時候,是從下而上的,所以最先遇到的屬性值最先返回,通過這種機制可以完成過載的機制
}
 
Child.prototype = new Base("base");
 
var cl = new Child("child");
alert(cl.getId());
alert(cl.getName());
//由於cl從原型鏈上"繼承"到了getName方法,因此可以訪