javascript - arguments.callee
本文介绍了javascript - arguments.callee的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
function f (){
return arguments.callee;
}
f();
这里的return有什么作用呢?
解决方案
如果你想知道你这段代码的用途以及arguments.callee的作用可以先跟着我修改两次你的代码,看看效果,并自己总结一下,再接着看那个大概的解释
方法一
增加一行代码:alert(1);
并在调用的fn()
后面再添加一个括号[ 改为fn()()
],最终如:
function f()
{
alert(1);
return arguments.callee();
}
f()();
方法二
增加一行代码:alert(1);
,并将arguments.callee;
改为arguments.callee();
,最终如下:
function f()
{
alert(1);
return arguments.callee();
}
f();
解释
arguments 是JS里面一个内置对象,存在于任何函数[ function ]中,而callee则是arguments对象中的一个方法指向调用它的这个函数本体,这里就是说它就相当于是
f
,调用callee
等同于你又调用了一次f
,其实callee多数情况是在匿名函数内部使用,如:
(function(){
alert(1);
return arguments.callee();
})()
关于return
这里的return就是返回整个函数本身·f
通过上面的解释你可以知道这里的arguments.callee
就等同于f
,如:
function f()
{
alert(1);
return arguments.callee;
}
f();
↑↓等价于
function f()
{
alert(1);
return function f(){
alert(1);
};
}
f();
这篇关于javascript - arguments.callee的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文