js:構造函數和class

es6中class實現面向對象編程的新形式


class Animal{
    // 每一個類中都有一個構造器,若沒有指定構造器,那麼這個構造器是隱形的,構造器的作用,就是每當new一個類,必然優先執行構造器中的代碼
    constructor(name,age){
        this.name=name;//通過new實例的屬性,叫做實例屬性:dog.name
        this.age=age;
        // 靜態屬性,通過構造函數點出來的,直接訪問到的屬性叫做靜態屬性。構造函數名.屬性
    }
    // 在class內部通過static修飾的屬性就是靜態屬性,例如Animal.info;
    static info="白色的";
    //動物的實例方法
    say(){
        console.log("汪汪~")
    }
    //可以通過dog.say()來執行;
    //動物的靜態方法
    static show(){
        console.log("yellow body")
    }
};
const dog=new Animal("大黃",3)

注意:

  • 1、在class的{}區間內,只能寫構造器,靜態方法,靜態屬性,實例方法;
  • 2、class關鍵字,還是用原來的普通構造函數,把class關鍵字稱作語法糖

構造函數創建對象

//構造函數創建對象
fucntion Person(name,age){
    this.name=name;
    this.age=age;
}
const student=new Person("tinger",12)
//實例方法
Person.prototype.say=function(){
    console.log("hello")
}
//可以通過使用student.say()來執行;

//靜態方法
Person.show=function(){
    console.log("long hair");
}
//student.show()是無法用到的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章