Javascript:是已弃用的参数数组
Javascript: is the arguments array deprecated?
大多数网站都不赞成将callee
作为Function.arguments
的属性。但有些网站更进一步,说整个Functions.argument
是不赞成的,例如https://web.archive.org/web/20130313045745/http://aptana.com/reference/api/Arguments.html。如果整个动作都失败了,为什么只提到callee ?我只是刚刚发现arguments
,似乎非常有用,例如:http://hungred.com/how-to/secret-arguments-array-javascript/
Function.arguments
已被弃用,但它只是在支持函数中可用的普通arguments
对象时才被弃用。(例如用x = arguments[i];
代替x = theFunc.arguments[i];
)
这是现在访问接收到的有序参数的首选方法(正如您所说,非常有用)。
Afaik arguments
已弃用作为Function的属性。查看这个mdn链接,或者这个
Javascript参数array"-没有弃用,但我想说2021年过时了:
"arguments"关键字是保留的,不能用作形参名,也不能在函数体内用作局部变量。该特性的设计目的是允许在调用函数时使用任意数量的参数,而不必在函数定义中指定任意数量的参数。它也是一种过时的使用多个参数的方法,并且比现代的rest参数方法效率低。
下面是显示首选实践的示例:
function eat(...food) {
for (let item in food) {
console.log("eating " + item);
}
// log the rest parameter
console.log(food);
}
eat("eggs", "toast", "bacon");
// => eating eggs
// => eating toast
// => eating bacon
// => [ 'eggs', 'toast', 'bacon' ]
以上引用和代码示例来自一篇题为《JavaScript参数和参数》的文章
callee不推荐使用,但该参数在许多应用程序中使用。我不知道arguments是否被弃用了。您可以使用它来获取函数的所有参数,即使函数中没有定义(params)。
大多数时候我在开发jQuery插件时使用。例如:
$.fn.tooltip = function( method ) {
if ( methods[method] ) {
return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
} else if ( typeof method === 'object' || ! method ) {
return methods.init.apply( this, arguments );
} else {
$.error( 'Method ' + method + ' does not exist on jQuery.tooltip' );
}
};
正如您所看到的,只有method作为参数传递,但如果参数在第一个值之后分割,则在第一个参数中传递。这样你就可以传递一个函数名,以及该函数使用的所有参数。
完整示例:http://docs.jquery.com/Plugins/Authoring
不,arguments数组在最新5.1版本的规范中没有被弃用(参见第60页)。然而,caller
对象只有在代码不是严格模式时才可用。
- 从node.js向CasperJS传递参数数组
- 如何从参数数组中调用回调
- 传递参数数组而不更改此项
- 在参数数组中传递整数数组
- 如何在JavaScript中获取字符串表示的参数数组
- 使用包含参数数组的数组调用函数,而不是仅列出数组
- JavaScript 修改 URL 参数数组
- 如何将参数数组传递给 JavaScript 中的另一个函数
- 传递参数数组
- 带有函数参数数组的闭包
- 将 JavaScript new 关键字与可变长度参数数组一起使用
- JavaScript:为什么更改参数变量会更改“参数”“数组”
- 如果使用参数数组调用,则日期会更改结果
- 试图理解Javascript中参数数组的概念
- Javascript:如何使用apply方法传递参数数组,然后在被调用的函数中访问它
- 发送单个参数与参数数组
- Array.from(arguments)是创建参数数组的一种可接受的方法
- 函数参数数组,如何影响reference =[]或reference.concat(array2)
- 在javascript中构建参数数组
- Javascript:是已弃用的参数数组