gpt4 book ai didi

ecmascript-6 - 为什么 babel 以这种方式转换默认参数?

转载 作者:行者123 更新时间:2023-12-01 11:16:27 24 4
gpt4 key购买 nike

Babel 正在将我的 ES2015 默认参数转换为 ES5,但它似乎做得非常冗长。这是原始函数:

function initStyles(skipScaling = false) {/*...*/}

这是转译后的结果:
function initStyles() {
var skipScaling = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
}

如果我(也许是天真地)实现这一点,我会做这样的事情:
function initStyles(skipScaling) {
if (skipScaling === undefined) skipScaling = false;
}

Babel 以这种方式处理它的原因是什么?

最佳答案

具有默认初始化程序的参数不计入函数数量。 .length 您的 initStyles函数应该是 0 ,Babel 使用 arguments object 复制了它初始化 var而不是使用命名参数。

关于ecmascript-6 - 为什么 babel 以这种方式转换默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50395823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com