我是JavaScript和后端编程的新手,并且是基于它的一个框架(Sencha Touch)。
我正在对服务器进行AJAX调用,然后执行成功或失败回调(对吗?)函数。但是,我注意到编程或不编写所有参数是程序员的选择。例如,在某个地方,我看到success: function(conn, response, options, eOpts)
,另一个地方success: function(response)
。
为什么会有这样的差异?参数中的这种可变性是一种JavaScript吗?
答案 0 :(得分:0)
为什么会有这样的差异?参数中的这种可变性是一种JavaScript吗?
在JavaScript中,您通常只需定义要使用的形式参数。如果调用者传递的参数多于或少于正式参数,则不是错误。
例如:
function foo(bar, baz) {
console.log('bar', bar);
console.log('baz', baz);
console.log('all arguments', arguments);
}
foo(); // ok
foo(1); // ok
foo(1, 2); // ok
foo(1, 2, 3); // ok
该函数始终可以 1 通过特殊arguments
变量访问所有传递的参数。
更实际的例子:
Array#map
将三个参数传递给回调:
但是,大多数情况下,你会发现人们只声明了第一个参数,因为这就是他们将要使用的全部内容:
var arr = [1,2,3].map(function(value) { return value + 1; }));
<子>
1:除非你有一个数组函数,否则arguments
在词法上被解析。
子>
答案 1 :(得分:0)
在JS中,您可以使用任意数量的参数调用函数。他们都会被这个功能所接受。在功能端,您可以选择命名它们。它不像其他语言那样“必须”传递函数中定义的相同数量的参数。