js函数的内部属性---arguments,callee,caller

在接下来的几篇文章中,我大家谈谈函数的内部属性,arguments,callee,caller

(1)arguments,是一个类数组对象,其中包含了传入函数的所有参数,主要用途是,保存函数的参数;

代码1:

function aa(b){alert(arguments);}

aa(4);

function aa(a,b,c,d){alert(arguments.length);}

aa(1,2,3,4);

function aa(a,b,c,d){alert(arguments[2]);}

aa(1,2,3,4);

function Hi() {

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

alert("Hi, " + arguments[i])

}

}

Hi("Cat", "Alice");

(2)另外一个属性callee,该属性是一个指针,指向拥有这个arguments对象的函数。

(3)另一个属性calleer,该属性指向调用当前函数的函数的引用。

Arguments.callee典型应用:

代码1:

var i = 1 setTimeout( function() {

alert(i)if (i++<3) setTimeout(arguments.callee, 1000)

}, 1000);

代码2:(递归时,实现代码解耦)

function test1(num){

if(num<=1){

return 1

}else

return num*arguments.callee(num-1);

}

test1(5);//120

Arguments.callee.caller

Arguments.callee.caller 例子:

f();

function f() {

alert(arguments.callee.caller); // undefined

g();

}

functiong() {

alert(arguments.callee.caller) ;

}

这一章简单介绍到这,后续几篇文章,将介绍函数中最重要的属性(没有之一),prototype和很牛逼的两个方法,apply,call();水平有限,请多多指教。

js函数的内部属性---arguments,callee,caller,布布扣,bubuko.com

时间: 2024-08-04 04:00:33

js函数的内部属性---arguments,callee,caller的相关文章

js 方法中内部属性arguments的callee属性

var factorial=function(num){ if(num<=1) return 1; else // return num*factorial(num-1);//递归时,在方法内部通过该方法的方法名来调用自己是非常危险的,因为js可以直接修改方法变脸的值 return num*arguments.callee(num-1);//递归时,应该使用方法内部属性arguments的callee属性,它保存了当前方法的地址(指针) } var another=factorial; fact

函数深入理解---函数的内部属性arguments和this

arguments function say(num){ /* 在函数对象中有一个属性叫做arguments,通过这个属性可以获取相应的参数值,这个属性 是一个数组,其实就是传递进来的参数 */ console.log(arguments.length); for(var i=0;i<arguments.length;i++){ console.log(arguments[i]); } console.log(num); } /* 在arguments这个对象中有一个callee的方法,argu

2、函数内部属性 arguments是类数组对象,主要用途是保存函数参数,但这个对象中有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数

例如:(1).function factorial(num){ if(num<=1){ return 1; }else{ return num*factorial(num-1); } }//此时是递归算法 var trueFactorial=factorial;//将factorial复制给trueFactorial factorial=function(){ return 0; }//覆盖factorial函数 alert(trueFactorial(5));//0;因为辞职factorial

js arguments.callee &amp; caller的用法及区别

在函数内部,arguments.callee该属性是一个指针,指向拥有这个arguments对象的函数; 而函数对象的另一个属性:caller,这个属性保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为null. 1 <script type="text/javascript"> 2 function inner(){ 3 alert(arguments.callee); //指向拥有这个arguments对象的函数,即inner() 4 alert

关于arguments.callee.caller.arguments[0]获得event的一些问题

先从一个简单的例子说起,一个简单的button控件如下: < input  type ='button'  name ='mybtn'  id ='mybtn'  onclick ='myFunc()' /> 然后为其注册事件,这样的情况,怎么在javascript里获取event呢,特别是firefox的情况.请看: < script  type ='text/javascript' > function  myFunc(){    var  ev  =  window.even

JavaScript中的arguments,callee,caller,call,appy

<script language="JavaScript">/* * 演示arguments的用法,如何获取实参数和形数数 */function argTest(a,b,c,d){    var numargs = arguments.length;     // 获取被传递参数的数值.    var expargs = argTest.length;       // 获取期望参数的数值.    alert("实参数目为:"+numargs)    a

JavaScript中的內定物件與函式: arguments, callee, caller, this, apply(), call()

arguments, caller, callee, this都是用在函式(function)內的特殊內定物件.而apply()及call()則是用來呼叫函式的不同作法. arguments可用來取得function傳入的實際變數Array.這個變數特別適合用在撰寫”多形”(Polymorphism)函式上,即可以根據不同的傳入參數做不同的處理.範例一 – 加總函式 function sum() { var total = 0; for( var i=0; i<arguments.length;

js的隐含参数(arguments,callee,caller)使用方法

在提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments arguments 该对象代表正在执行的函数和调用它的函数的参数.[function.]arguments[n]参数function:选项.当前正在执行的 Function 对象的名字. n :选项.要传递给 Function 对象的从0开始的参数值索引.说明Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象.Arguments是一个类似数组但不是数组的对象,说它类似数组是因为

JavaScript (JS) 函数补充 (含arguments、eval()、四种调用模式)

1. 程序异常 ① try-catch语法    测试异常 try-catch语法代码如下: try { 异常代码;     try中可以承重异常代码, console.log("try")  出现异常代码后,正确代码不会执行 } catch (e) { console.log("e:"+e);  try中出现异常在e中展现出来 console.log("catch");  只有try中出现异常才执行这段代码 } finally { consol