const a = () => ({ a = 1, b = 2 } = {}): number => 11;
编译之后生成的JavaScript函数:
var a = function () { return function (_a) {
var _b = _a === void 0 ? {} : _a, _c = _b.a, a = _c === void 0 ? 1 : _c, _d = _b.b, b = _d === void 0 ? 2 : _d;
return 11;
}; };
Jerry加了一些注释,如下:
// a是一个函数,调用之后,返回一个新的函数,该新的函数接受一个输入参数_a:
var a = function () {
return function (_a) {
// 定义一个临时变量_b, 存储输入参数_a的值。如果输入参数_a为undefined, 则_b的值为默认值,一个空对象
// 否则_b等价于_a
var _b = _a === void 0 ? {} : _a;
// _c存储输入参数里字段a的值
var _c = _b.a;
// 如果输入参数的a字段为空,则赋给默认值1,否则使用传入的输入参数的字段a的值
var a = _c === void 0 ? 1 : _c;
// _d存储输入参数的b字段的值
var _d = _b.b;
// 如果b字段为空,使用默认值2,否则使用传入的值
var b = _d === void 0 ? 2 : _d;
return 11;
}; };