arguments对象,caller 和 callee】的更多相关文章

1.前言 arguments, caller ,   callee 是什么? 在JavaScript 中有什么样的作用?本篇会对于此做一些基本介绍. 本文转载自:http://blog.csdn.net/oscar999/article/details/8511335 2. arguments arguments:  在函数调用时, 会自动在该函数内部生成一个名为 arguments的隐藏对象. 该对象类似于数组, 但又不是数组.可以使用[]操作符获取函数调用时传递的实参. <!--by osc…
1.前言 arguments, caller ,   callee 是什么? 在javascript 中有什么样的作用?本篇会对于此做一些基本介绍. 2. arguments arguments:  在函数调用时, 会自动在该函数内部生成一个名为 arguments的隐藏对象. 该对象类似于数组, 但又不是数组.可以使用[]操作符获取函数调用时传递的实参. <!--by oscar999 2013-1-16--> <!DOCTYPE html PUBLIC "-//W3C//D…
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 调用函数时,实参和形参需要一一对应,但如果参数多了的话,会很苦恼: 我们可以用键值对(字面量对象)的方式传参,这样参数的顺序就无关紧要了: <script type="text/javascript"> function test4(name,age,height,pos){ return name+age+height+pos; } console.log(test4('Shan…
arguments 对象表示参数集合,它是一个伪类数组,拥有与数组相似的结构,可以通过数组下标的形式访问函数实参值,但是没有基础 Array 的原型方法. //函数没有定义形参,但是在函数体内通过 arguments 对象可以获取传递给该函数的每个实参值. function f () { //定义没有形参的函数 for(var i = 0; i < arguments.length; i++ ) { //循环读取函数的 arguments 对象 alert(arguments[i]); //显示…
arguments对象是比较特别的一个对象,arguments非常类似Array,但实际上又不是一个Array实例. 它指的是函数对象里的参数,且只能在函数内部使用. 使用 检测函数的参数个数,引用属性 arguments.length. 访问:arguments[0] 1.arguments对象的长度是由实参个数而不是形参个数决定的. function a(a,b,c){ console.log(arguments.length) console.log(arguments[3]) b=b-a…
js中的arguments对象代表正在执行的函数和调用它的函数的参数.arguments对象有两个属性,callee和caller.collee表示当前正在执行的方法,caller表示调用该方法的对象,如果函数是顶层调用的,则caller值为null.这两个属性可以用在以下情形: 1.方法的链式调用 (function(o){ alert(o); return arguments.callee; })("第一次调用")("第二次调用")("第三次调用&qu…
一.Arguments该对象代表正在执行的函数和调用他的函数的参数.[function.]arguments[n]参数function :选项.当前正在执行的 Function 对象的名字.n :选项.要传递给 Function 对象的从0开始的参数值索引.说明:Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象.Arguments是个类似数组但不是数组的对象,说他类似数组是因为其具备数组相同的访问性质及方式,能够由arguments[n]来访问对应的单个参数的值,并…
arguments.callee   在函数内部,有两个特殊的对象:arguments 和 this.其中, arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 arguments 对象的函数. 请看下面这个非常经典的阶乘函数 function factorial(num){ if (num <=1) { return 1; } else { return num * factorial(num-1) } } 定义阶乘函数…
在函数内部,有两个特殊的对象:arguments和this. argument对象有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数.请看下面这个非常经典的阶乘函数. function factorial(num) { if (num <= 1) { return 1; } else { return num*factorial(num-1); } } 这种写法的问题在于函数的执行和函数名factorial紧紧耦合在一起.可以像下面这样使用arguments…
caller返回一个对函数的引用,该函数调用了当前函数. functionName.caller functionName 对象是所执行函数的名称. 说明对于函数来说,caller 属性只有在函数执行时才有定义. 如果函数是由 Javascript 程序的顶层调用的,那么 caller 包含的就是 null .下面的例子说明了 caller 属性的用法: js 代码: function callerDemo() { if (arguments.caller) { var a = callerDe…