Ajax回调中的函数参数

时间:2015-08-10 21:00:00

标签: javascript

我是JavaScript和后端编程的新手,并且是基于它的一个框架(Sencha Touch)。

我正在对服务器进行AJAX调用,然后执行成功或失败回调(对吗?)函数。但是,我注意到编程或不编写所有参数是程序员的选择。例如,在某个地方,我看到success: function(conn, response, options, eOpts),另一个地方success: function(response)

为什么会有这样的差异?参数中的这种可变性是一种JavaScript吗?

2 个答案:

答案 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中,您可以使用任意数量的参数调用函数。他们都会被这个功能所接受。在功能端,您可以选择命名它们。它不像其他语言那样“必须”传递函数中定义的相同数量的参数。