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就会报错。

    原文作者:李一昂
    原文地址: https://segmentfault.com/a/1190000016151881
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞