This question already has answers here:
Why does babel rewrite imported function call to (0, fn)(…)?
                                
                                    (2个答案)
                                
                        
                4年前关闭。
            
        

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);,并且它们似乎在做同样的事情。这两个语句有什么区别?

最佳答案

0被忽略。仅在这里允许逗号运算符评估_classCallCheck3.default并获得函数,而this不是_classCallCheck3

10-04 22:32
查看更多