【发布时间】:2016-07-21 02:11:01
【问题描述】:
ES6 代码:
let foo = 'outer';
function bar(func = x => foo){
let foo = 'inner';
console.log(func());
}
bar(); // outer
结果是“外部”。
Babel.js 编译的 ES5 代码:
'use strict';
var foo = 'outer';
function bar() {
var func = arguments.length <= 0 || arguments[0] === undefined ? function (x) {
return foo;
} : arguments[0];
var foo = 'inner';
console.log(func());
}
bar(); // inner
结果是“外部”。
我不知道为什么他们有不同的结果。
【问题讨论】:
标签: javascript ecmascript-6 babeljs