gpt4 book ai didi

javascript unshift 参数返回意外结果

转载 作者:搜寻专家 更新时间:2023-11-01 00:09:08 27 4
gpt4 key购买 nike

router.route = function (alias, pattern, action, constraints) {
if (2 === arguments.length)
Array.prototype.unshift.call(arguments, undefined)

console.log(arguments)
}

router.route('/artist/:id', function () {})


{ '0': undefined,
'1': '/artist/:id',
'2': [Function],
'3': undefined,
'4': undefined,
'5': undefined,
'6': undefined,
'7': undefined,
'8': undefined,
'9': undefined,
'10': undefined,
'11': undefined,
'12': undefined,
'13': undefined,
'14': undefined,
'15': undefined,
'16': undefined,
'17': undefined,
'18': undefined,
'19': undefined }

我基本上想做的是使“别名”参数可选但我正试图找到一种不这样做的方法。

if (2 === arguments.length) {
action = pattern
pattern = alias
alias = undefined
}

所以 unshift() 基本上可以工作,我得到了相同的结果。别名 = 未定义pattern = '/artist/:id'action = function () {}

但问题是我无处不在地在参数数组的末尾添加了 17 个“未定义的”。

这会影响性能吗,有人知道为什么会这样吗?

编辑

我在原来的问题中不小心写了 Array.prototype.unshift(arguments, undefined) 而不是 Array.prototype.unshift.call(arguments, undefined) ,非常抱歉。

最佳答案

如果那些未定义的地方是由于资源超时而存在的,那么是的,性能将会受到影响。如果它只是一个空数组索引那么不,它不会影响性能。

关于javascript unshift 参数返回意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10726358/

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