源码分析

/**
 * 检查一个类是否没有被当作类使用,而是当作函数被调用
 * 实际上是检查了构造函数内的this是否该构造函数的实例。因为在使用new调用一个构造函数时,构造函数内部的this是指向生成的实例的
 * @param instance 通常传入构造函数内的this实例
 * @param Constructor 通常传入构造函数
 */
function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

例子

var Animal = function Animal() {
  _classCallCheck(this, Animal);
};

当Animal没有当作构造函数调用时,_classCallCheck将不会检查通过

分类: babel

发表评论

电子邮件地址不会被公开。 必填项已用*标注