gpt4 book ai didi

Javascript 添加额外的参数

转载 作者:IT王子 更新时间:2023-10-29 03:14:06 26 4
gpt4 key购买 nike

让我们看一下这段代码:

var mainFunction = function() {
altFunction.apply(null, arguments);
}

传递给 mainFunction 的参数是动态的——它们可以是 4 个或 10 个,无关紧要。但是,我必须将它们传递给 altFunction 并且我必须向参数列表添加一个 EXTRA 参数。

我试过这个:

var mainFunction = function() {
var mainArguments = arguments;
mainArguments[mainArguments.length] = 'extra data'; // not +1 since length returns "human" count.

altFunction.apply(null, mainArguments);
}

但这似乎行不通。我该怎么做?

最佳答案

使用Array.prototype.push

[].push.call(arguments, "new value");

没有必要浅克隆 arguments 对象,因为它和它的 .length 是可变的。

(function() {
console.log(arguments[arguments.length - 1]); // foo

[].push.call(arguments, "bar");

console.log(arguments[arguments.length - 1]); // bar
})("foo");

来自 ECMAScript 5,10.6 Arguments Object

  1. Call the [[DefineOwnProperty]] internal method on obj passing "length", the Property Descriptor {[[Value]]: len, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true}, and false as arguments.

所以你可以看到 .length 是可写的,所以它会用 Array 方法更新。

关于Javascript 添加额外的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13610987/

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