javascript - arguments.callee
问题描述
function f (){ return arguments.callee;}f();
这里的return有什么作用呢?
问题解答
回答1:arguments.callee 就是这个函数,好像 ES6 已经不推荐用了。
题目的代码等同于
function f (){ return f;}回答2:
返回函数体本身
回答3:如果你想知道你这段代码的用途以及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();回答4:
严格模式下报错。 不推荐使用这个。
相关文章:
1. javascript - 一排三个框,各个框的间距是15px,距离外面的白框间距也是15px,这个css怎么写?2. javascript - nodejs调用qiniu的第三方资源抓取,返回401 bad token,为什么3. html5 - javascript写业务有用到什么编程范式没?4. html5 - vue-cli 装好了 新建项目的好了,找不到项目是怎么回事?5. javascript - immutable配合react提升性能?6. javascript - vue 手机端项目在进入主页后 在进入子页面,直接按返回出现空白情况7. css3 - 微信前端页面遇到的transition过渡动画的bug8. javascript - jQuery post()方法,里面的请求串可以转换为GBK编码么?可以的话怎样转换?9. python3.x - python 中的maketrans在utf-8文件中该怎么使用10. mysql - C#连接数据库时一直这一句出问题int i = cmd.ExecuteNonQuery();

网公网安备