引子

(0, function (arg) { ... })(this)

comma operator(The comma operator evaluates each of its operands (from left to right) and returns the value of the last operand.)

(0, fn)() === fn()
var global = 'outer';
(() => {
  var global = 'inner';
  eval('console.log("call directly:" + global)');
  (0, eval)('console.log("call directly:" + global)');
})()

// call directly:inner
// call directly:outer

link