零作为IIFE的第一个参数

时间:2016-02-22 23:39:31

标签: javascript babeljs

babeljs v6.5.1中,

class Foo {}

编译到

"use strict";

var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var Foo = function Foo() {
  (0, _classCallCheck3.default)(this, Foo);
};

0中的(0, _classCallCheck3.default)(this, Foo);有什么意义?

在在线babeljs repl中,可能有不同的babeljs版本,该行只是_classCallCheck(this, Foo);,他们似乎做同样的事情。这两个陈述之间有什么区别?

1 个答案:

答案 0 :(得分:2)

忽略0。它仅用于允许逗号运算符评估_classCallCheck3.default并获取this _classCallCheck3之内的函数。