为什么你可以跳过在JavaScript

时间:2018-01-23 17:20:40

标签: javascript constructor specifications

前提:

因此,无论您是从function还是es6 class还是base class进行构建,都应该初始化(现在让我们忽略短手构造函数):

const Fruit = function(name) {this.name = name}
class Ball {
  constructor(color) {this.color = color}
}

const apple = new Fruit('apple')
const red_ball = new Ball('red')
const ob = new Object()
const arr = new Array()

混乱:

但是,如果我在所有陈述中杀死了上面的new关键字,那么就是这样:

  • Class

      

    未捕获的TypeError:如果没有' new'

    ,则无法调用类构造函数A.
  • Function Es5 class

      

    Undefined

  • Array / Base Classes - 正确初始化!但为什么?
      

    []{}

思想:

这可能是一个非常愚蠢的问题,但我找不到任何关于这种情况的参考,但这种行为似乎一致适用于Chrome,Firefox,Edge和Node.js

0 个答案:

没有答案