简单的功能说明

时间:2012-12-31 10:56:17

标签: javascript

为什么此功能会提醒10?

function b (x, y, a) {
  arguments[2] = 10;
  alert(a);
}

b(1, 2, 3);

4 个答案:

答案 0 :(得分:9)

javascript数组是零索引的,而arguments指的是作为参数传递给函数的参数:

arguments[2] === a === 10

1 === x === arguments[0];
2 === y == arguments[1];

(而triple equality运算符不是错误的)

答案 1 :(得分:4)

因为您将第三个参数设置为10.来自MDN

  

您可以使用函数引用函数中的函数参数   参数对象。该对象包含每个参数的条目   传递给函数,第一个条目的索引从0开始   例如,如果函数传递了三个参数,则可以参考   论点如下:

arguments[0]
arguments[1]
arguments[2]

答案 2 :(得分:3)

arguments对象是所有函数中可用的局部变量;作为Function属性的参数不能再使用

使用此参考资料进一步

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Functions_and_function_scope/arguments

答案 3 :(得分:1)

此函数接受三个输入,丢弃前两个输入并在模态弹出窗口中显示最后一个输入,但在将值10分配给2的索引arguments之前不会 - 有效地设置输入来自a的{​​{1}}到10 - 然后退出范围而不返回任何内容。