JavaScript——class與原型對象

原型對象的意義函數

  • 經過new 一個構造函數,咱們可以得到一個實例,在new 的過程當中,程序會在內存中申請一塊區域,同時咱們能夠加參數,因此每一個對象都不同。
  • 原型對象則是同一個構造函數 new 出來的全部實例同時擁有一個原型對象,原型對象上掛在的屬性或者方法是固定的提供這些實例使用
  • 以上得出,原型對象的優勢,固定爲全部實例提供屬性或方法,不會額外加內存
  • 應用場景,每一個對象獨有的屬性用構造函數,共有的屬性和方法掛載到原型對象上

 

classthis

實例屬性,寫入在constructor中spa

靜態屬性與方法,寫在constructor外,用static修飾code

原型對象,寫在constructor外對象

<script>
    class Person {
        constructor(name, age) {
            this.name = name;
            this.age = age
        }
     // 掛載到原型對象上
        Say() {
            console.log('I am  human')
        }
    }
    console.log(new Person('ss', 14))
</script>

繼承,子類繼承使用extends關鍵字,當子類須要寫入私有的屬性,必須添加constructor以及super(),super() 至關於父類構造器的引用,this關鍵字必須在super以後blog

<script>
    class Person {
        constructor(name, age) {
            this.name = name;
            this.age = age
        }

        // 掛在到原型對象上
        Say() {
            console.log('I am  human')
        }
    }
    class Student extends Person {
        constructor(name, age, id) {
            super(name, age)
            this.id = id
        }
    }
    console.log(new Student('ww', 14, 14))
</script>

相關文章
相關標籤/搜索