扫码关注官方订阅号
function f (){ return arguments.callee; } f();
这里的return有什么作用呢?
arguments.callee 就是这个函数,好像 ES6 已经不推荐用了。
题目的代码等同于
function f (){ return f; }
返回函数体本身
如果你想知道你这段代码的用途以及arguments.callee的作用可以先跟着我修改两次你的代码,看看效果,并自己总结一下,再接着看那个大概的解释
增加一行代码:alert(1); 并在调用的fn()后面再添加一个括号[ 改为fn()() ],最终如:
alert(1);
fn()
fn()()
function f() { alert(1); return arguments.callee(); } f()();
增加一行代码:alert(1);,并将arguments.callee;改为arguments.callee();,最终如下:
arguments.callee;
arguments.callee();
function f() { alert(1); return arguments.callee(); } f();
解释 arguments 是JS里面一个内置对象,存在于任何函数[ function ]中,而callee则是arguments对象中的一个方法指向调用它的这个函数本体,这里就是说它就相当于是f,调用callee等同于你又调用了一次f,其实callee多数情况是在匿名函数内部使用,如:
arguments 是JS里面一个内置对象,存在于任何函数[ function ]中,而callee则是arguments对象中的一个方法指向调用它的这个函数本体,这里就是说它就相当于是f,调用callee等同于你又调用了一次f,其实callee多数情况是在匿名函数内部使用,如:
f
callee
(function(){ alert(1); return arguments.callee(); })()
return
这里的return就是返回整个函数本身·f通过上面的解释你可以知道这里的arguments.callee就等同于f,如:
arguments.callee
function f() { alert(1); return arguments.callee; } f(); ↑↓等价于 function f() { alert(1); return function f(){ alert(1); }; } f();
严格模式下报错。 不推荐使用这个。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
arguments.callee 就是这个函数,好像 ES6 已经不推荐用了。
题目的代码等同于
返回函数体本身
如果你想知道你这段代码的用途以及arguments.callee的作用可以先跟着我修改两次你的代码,看看效果,并自己总结一下,再接着看那个大概的解释
方法一
增加一行代码:
alert(1);并在调用的fn()后面再添加一个括号[ 改为fn()()],最终如:方法二
增加一行代码:
alert(1);,并将arguments.callee;改为arguments.callee();,最终如下:关于
return这里的return就是返回整个函数本身·f
通过上面的解释你可以知道这里的
arguments.callee就等同于f,如:严格模式下报错。 不推荐使用这个。