js中的潜伏者之Arguments对象

argument

说明:

  在JavaScript中,arguments是对象的一个特殊属性。arguments对象就像数组,但是它却不是数组。可以理解为他是潜伏者,通俗的说,就是你传的参数不一定按照参数列表的方式来,多的就进arguments里。

属性:

  length, 获取arguments对象的长度。

  callee, 引用当前正在执行的函数。

编辑本段举例:

1.参数的长度

  window.onload = function(){

  abc(1,2,3);

  }

  function abc(){

  //虽然这里没有引用参数,但是arguments仍能捕获到

  alert(arguments.length);

  }//output 3

2.隐藏的参数

  function abc(x,y){

  for(var i=0;i<=arguments.length;i+=){

  alert(arguments[i]);

  }

  }//output: 1,2,3  

3.改变参数值

  function abc(x,y,z){

  arguments[2] = "hello";

  for(var i=0;i<=arguments.length;i+=){

  alert(" "+arguments[i]);

  }

  }//output: 1 2 hello

4.递归

  求1到n的自然数之和

  function add(x){

  if(x == 1) return 1;

  else return n + arguments.callee(n-1);

  }

  其实callee对于没有命名的函数调用自身时就是一个福音了,比如对于没有命名的函数求1到n自然数之和

  var result = function(x){

  if(x == 1) return 1;

  return x+arguments.callee(x-1);

  }

时间: 2024-10-08 04:03:21

js中的潜伏者之Arguments对象的相关文章

在js中使用createElement创建HTML对象和元素 (转)

1.创建链接 <script language="javascript"> var o = document.body; //创建链接 function createA(url,text) { var a = document.createElement("a"); a.href = url; a.innerHTML = text; a.style.color = "red"; o.appendChild(a); } createA(

JS中的如何构造自定义对象

一.对象是什么及组成及使用方法: 1.对象是种特殊的数据结构,结合了数据与依据数据行动的程序代码. 2.实际上,对象只是结合成单一结构体的变量和函数. 3.当变量被放在对象中时,它称为特性:当函数被放在对象中时,它被称为方法. 4.引用特性和方法时需提供对象的名称,后随点号运算符,再接上特性或方法的名称. 二.构造函数负责创建对象: 既然对象具有相关的数据,数据便需在对象创建时初始化,此时需要一个特殊的方法——构造函数(constructor),来为对象准备运行.每个对象都需要自己的构造函数,其

js中的函数,Date对象,Math对象和数组对象

函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. 其语法结构为 function funName (arg0, arg1, … argN){        //statements    } function say_hello (name, msg){ alert(“hello”+ name + “:”+ msg); } say_hello(“d

如何在Node.js中合并两个复杂对象

通常情况下,在Node.js中我们可以通过underscore的extend或者lodash的merge来合并两个对象,但是对于像下面这种复杂的对象,要如何来应对呢? 例如我有以下两个object: var obj1 = { "name" : "myname", "status" : 0, "profile": { "sex":"m", "isactive" : tr

js中如何返回一个存放对象的数组?

我这边需要返回后台数据的形式是这样的 {[ { "ItemId": "18", "SelectId": 2 }, { "ItemId": "19", "SelectId": 1 }, { "ItemId": "20", "SelectId": 1 }, { "ItemId": "21",

细看JS中的BOM、DOM对象

DOM对象模型 [DOM树节点] DOM节点分为三大类:元素节点,文本节点,属性节点: 文本节点,属性节点为元素节点的两个子节点: 通过getElment系列方法,可以去到元素节点: [查看节点] 1.getElementById:通过id获取唯一的节点:多个同名ID只会取到第一个: 2.etElementByName:通过name取到一个数组,包含1到多个节点: 使用方式:通过循环取到每个节点,循环次数,从0开始<数组.length [查看设置属性节点] 1.查看属性节点:getAttribu

原生js中获取this与鼠标对象以及vue中默认的鼠标对象参数

1.通过原生js获取this对象 ``` <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <form action="" class="files" > <label class="file"

js中的DOM事件与对象

概念图 document.getElementById("bb"); 根据id找到bb,只能找一个哦 var aa = document.getElementById("bb"); 设一个变量aa,getElemenById,根据id找到bb,并赋值给aa: var div2 = document.getElementsByClassName("bb")[0]; 根据classname寻找到bb,并赋值给变量div2:找到的是一个数组哦: var

JS中this到底指哪个对象

忘了原作者是谁了   自己也添加了一些东西  勉强可以观看一下 元素就不写了   可以自己添一下试试 先看这段代码 target.onclick = function(){ console.log(this); } 答案打印的一定是target对象本身 任何的话都需要语境,上下文环境,放在不同的地方,含义可能就大不相同. 当有一个人对着你大喊一声:开! 如果你手里有把枪,你会扣动扳机.如果你坐在汽车里,你会踩油门.如果你站在阳台,你可能会打开窗户. THIS身为一个关键字,它所指代的是此刻正在运