在函數體內,標識符arguments是指向實參對象的引用,實參對象是一個類數組對象 arguments[0],arguments.length
arguments是什麼?
答:1:arguments是收到的實參副本
在詞法分析中, 首先按形參形成AO的屬性,值爲undefined
當實參傳來時, 再修改AO的相應屬性.
2:並把所有收到實參收集起來,放到一個arguments對象裏
t(a,b,c){},
調用時: t(1,2,3,4,5) 5個參數
此時 , AO屬性只有a,bc,3個屬性, arguments裏有1,2,3,4,5, 所有的值
對於超出形參個數之外的實參, 可以通過arguments來獲得
3:arguments 的索引 從 0, 1,2,....遞增,與實參逐個對應
4:arguments.length 屬性代表實參的個數
5:arguments一定不是數組, 是長的比較像數組的一個對象,雖然也有length屬性
6:arguments每個函數都會有,因此,arguemnts只會在內部找自身的arguments,
無法引用到外層的arguments
<script type="text/javascript">
// 求圓形面積,矩形面積, 三角形面積
function area () {
if(arguments.length == 1) {
alert(3.14 * arguments[0] * arguments[0]);
} else if(arguments.length == 2) {
alert(arguments[0] * arguments[1]);
} else if(arguments.length == 3) {
alert(arguments[0] + arguments[1] + arguments[2]);
} else {
return null;
}
}
area(10,20,30);
</script>