es6 class以及构造函数(constructor)

Posted yiangli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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就会报错。



以上是关于es6 class以及构造函数(constructor)的主要内容,如果未能解决你的问题,请参考以下文章

ES6构造函数class 和 ES5构造函数语法

es6之class

ES6构造函数class 和 ES5构造函数 语法介绍

ES6原生Class

ES6 Class(类)

js 构造函数(construction)与原型(prototype)