Class和構造函數的異同

如下兩種方式實現相同的功能

  1. 在普通對象上面加兩個屬性和一個方法
  2. 在原型對象上加一個方法
  3. 在構造函數對象上面加一個方法函數

    class Student {
    constructor(name, age) {
    this.name = name ;
    this.age = age;
    this.sayName = this.sayName
    },
    sayName() {
    console.log(this.name)
    },
    static sayHello() {
    console.log('helloworld')
    }
    }this

    function Student(name, age) {
    this.name = name ;
    this.age = age ;prototype

    this.sayName = function() {
       console.log(this.name)
     }

    }code

    Student.prototype.sayName = function() {
    console.log(this.name)
    }對象

    Student.sayHello = function() {
    console.log('helloworld')
    }blog

    區別

  4. 類的形式
    • 能夠在Class內部同時定義普通對象的屬性方法,定義構造函數對象上面的方法,定義原型對象上面的方法屬性
    • 值得注意的是經過靜態關鍵字只能在構造函數對象上面添加方法,也就是說只能定義靜態的方法,不能定義靜態的屬性
  5. 構造函數的形式
    • 在構造函數內部只能定義普通對象上面的方法和屬性
    • 靜態方法也就是構造函數對象上面的方法,只能經過顯式的追加
    • 原型對象上面的方法和屬性也須要顯式的追加



相關文章
相關標籤/搜索