arguments.callee

function f (){

    return arguments.callee;

}



f();

这里的return有什么作用呢?

慕标5832272
浏览 384回答 1
1回答

Smart猫小萌

如果你想知道你这段代码的用途以及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();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript