您现在的位置:首页 >> 前端 >> 内容

es6 constructor方法实例讲解

时间:2018/2/1 14:38:45 点击:

  核心提示:constructor 方法constructor()方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor()方法,如果没有显式定义,一个空的const...

constructor 方法

constructor()方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor()方法,如果没有显式定义,一个空的constructor()方法会被默认添加。

class Point {

}

// 等同于

class Point {

  constructor() {}

}

上面代码中,定义了一个空的类Point,JavaScript 引擎会自动为它添加一个空的constructor()方法。

constructor()方法默认返回实例对象(即this),完全可以指定返回另外一个对象。

class Foo {

  constructor() {

    return Object.create(null);

  }

}

new Foo() instanceof Foo

// false

上面代码中,ES6

constructor()方法返回一个全新的对象,结果导致实例对象不是Foo类的实例。

类必须使用new调用,否则会报错。这是它跟普通构造函数的一个主要区别,后者不用new也可以执行。

class Foo {

  constructor() {

    return Object.create(null);

  }

}

Foo()

// TypeError: Class constructor Foo cannot be invoked without 'new'

Tags:ES S6 6C CO 
作者:网络 来源:Web先生的博客