JS中的arguments對象解析

在函數體內,標識符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>


發佈了69 篇原創文章 · 獲贊 7 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章