通過原型擴展對象

原型對象

系統默認自動爲js函數生成空的原型(prototype)對象。如果某個函數是類的構造函數,那麼它的原型對象可以被用來對類進行擴展。
當給構造函數的prototype屬性賦值時,他們會自動擴展到該類的所有實例

  • 使用prototype屬性爲對象添加屬性
eg:
<script>
    function Cat(name){
        this.name = name;
    }
    var cat1 = new Cat("zch1");
    var cat2 = new Cat("zch2");
    alert(cat1.name + "---" + cat2.name);
    //擴展屬性與方法
    Cat.prototype.action = functon(){
        alert(this.name + "miao-miao---");
    }
    Cat.prototype.friend = "hhd";
    //Object是所有對象的父親,也可以通過他來擴展屬性
    Object.prototype.Animal = "you are a animal!";
    cat1.action();
    cat2.action();
    alert(cat1.friend + "---" + cat2.friend);
    alert(cat1.animal);
</script>

原型查找鏈

在程序獲取對象的屬性時,js會首先查看該屬性是否直接定義在那個對象中。
其查找順序以Cat對象爲例:

  • 對象自身,就像cat1,cat2
  • Cat.prototype
  • Object.prototype

以上查找屬性的順序,就是屬性查找鏈

發佈了27 篇原創文章 · 獲贊 9 · 訪問量 9107
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章