argument代表当前函数的参数数组
arguments.callee表示引用当前正在执行的函数,或者说是调用arguments.callee的函数对象的引用,它给匿名函数提供了一种自我引用的方式。通过如下例子,可以更好的理解概念。
var func = function() { alert(func === arguments.callee);}func();
执行上述代码,可以看到alter出来的结果是true,注意,此处用的是“===”,就是说func与arguments.callee对象类型和值都相等。
上面讲了arguments.callee的定义,那么它用在什么场合呢?一般来说,它会和匿名函数一起结合来用。
例如js脚本当前等待页面某种条件是否满足,如果满足进行相应初始化处理,但不是一直等下去,超过一定时间就放弃等待
//匿名函数实现
var start = new Date().getTime();
(function(){
if ((new Date()).getTime() - start > 3000) { return; }
setTimeout(arguments.callee, 1000);}
)();
比如执行初始化操作,使用匿名函数的好处是确保只被执行一次,而前面两种实现,由于定义了函数,就有可能在别处被误调用,从而执行多次初始化。
再看一递归调用例子:求一个数的阶乘
//普通实现
function fun2(n)
{
if (n > 1) { return n * fun2(n -1);
return 1;
}
var r1 = fun2(3); //计算3的阶乘
//使用匿名函数
var r2 = (function(n) { if (n > 1) { return n * arguments.callee(n -1); } return 1;})(3);
相关推荐
主要介绍了Javascript中arguments和arguments.callee的区别浅析,本文用一个实例来理解它们的区别,需要的朋友可以参考下
arguments.callee的使用方法,具体大家自己测试了
一、arguments.callee的作用:返回正被执行的 Function 对象 arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文,...
主要介绍了Javascript函数中的arguments.callee用法,结合实例形式分析了arguments.callee操作当前方法引用的具体技巧,需要的朋友可以参考下
js代码-arguments.callee
sorttable.js 排序-方便实用的js排序,只需简单操作即可见到效果 var stIsIE = /*@cc_on!@*/false; sorttable = { init: function() { // quit if this function has already been called if (arguments...
javascript中arguments,caller,callee 是什么?在javascript 中有什么样的作用?本篇会对于此做一些基本介绍。希望大家能够喜欢。
本篇文章只要是对js的隐含参数(arguments,callee,caller)使用方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
关于arguments,callee,caller等的测试 function testArg() { var sTemp =”test()开始执行\n\n函数定义的正文:\n\n”; sTemp+=arguments.callee + “\n\n”; sTemp+=”传入参数的长度:\n”; sTemp+=arguments....
arguments.callee 关于callee的解释:callee 是 arguments 对象的一个属性。可以用于引用该函数的函数体内当前正在执行的函数。这在函数的名称是未知时很有用,例如在没有名称的函数表达式 (也称为“匿名函数”)内...
js的隐含参数(arguments,callee,caller)使用方法.docx
function add(x) {_____... arguments.callee.toString = function(){ return c; }; return arguments.callee; }(x); }; alert(add(2)(3)(4)); 解法二, 代码如下: //三桂 function add(x) { return function(y
不做详细文字说明了,直接写代码...上面的代码 在执行时很容易出现问题,执行我们介绍一个方法,arguments.callee,是一个指向正在执行的函数的指针,使用指针代替函数名使得执行以上代码时不容易出错! 以上代码就是jav
3. 访问arguments.callee或函数的caller属性将导致“类型错误(TypeError)” 4. 以下代码的执行效果与非严格模式并不一致:js
js中arguments,caller,callee,apply的用法小结.docx
中午的时候稍微研究了下javascript function中的arguments 代码如下: [removed] [removed] = function() { (function(arg1, arg2) { alert(arguments.length); alert(arguments.callee.length); })...