es6 class以及構造函數(constructor)


es5中,生成實例對象通過構造函數來生成:

function Fun(a,b) {
    this.a = a;
    this.b = b;
}
Fun.prototype.showA = function () {
    console.log(this.a)
}
var fun = new Fun(1,2);
fun.showA();//1

  

es6則引用了class的概念,使得更接近java、c++等語言,更加直觀。如:

class Fun {
    constructor(a,b){
        this.a = a;
        this.b = b;
    }
    showA() {
        console.log(this.a);
    }
}
var fun = new Fun(1,2);
fun.showA();//1

這兩種寫法是一樣的,在es6中,class可以理解為一個語法糖,只是讓這種寫法更加直觀。
要注意的是,es6中聲明新的實例必須要用new聲明。
其中constructor為類的默認方法,通過new的調用可以執行這個方法。每個類都必須要有這個方法,如果沒有顯示定義,則一個空的constructor被添加到類里面。constructor方法默認返回實例對象,即this。也可以返回其他對象。這事,新的實例instanceof當前class就會報錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM