为了账号安全,请及时绑定邮箱和手机立即绑定

为什么JavaScript中的arguments.callee.caller属性不受欢迎?

为什么JavaScript中的arguments.callee.caller属性不受欢迎?

牧羊人nacy 2019-06-25 13:16:39
为什么JavaScript中的arguments.callee.caller属性不受欢迎?为什么arguments.callee.caller属性在JavaScript中不受欢迎?它被添加,然后在JavaScript中被弃用,但ECMAScript完全省略了它。一些浏览器(Mozilla,IE)一直支持它,并且在地图上没有任何删除支持的计划。其他人(Safari,Opera)已经采用了对它的支持,但是对旧浏览器的支持是不可靠的。是否有充分的理由将这一宝贵的功能放在一个边缘?(或者,是否有更好的方法来获取调用函数的句柄?)
查看完整描述

3 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

用它更好命名函数比辩论更重要。

 function foo () {
     ... foo() ...
 }

 function () {
     ... arguments.callee() ...
 }

命名函数将通过打电话者财产:

 function foo () {
     alert(foo.caller);
 }

 function foo () {
     alert(arguments.callee.caller);
 }

不推荐的原因是当前ECMAScript设计原则.


查看完整回答
反对 回复 2019-06-25
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

arguments.callee.caller虽然它确实使用了Function.caller财产。(arguments.callee将只提供对当前函数的引用)

  • Function.caller

    ,虽然根据ecma 3不符合标准,但是跨

    所有当前主流浏览器.

  • arguments.caller 

    不赞成

    Function.caller

    ,并且没有在当前的一些主要浏览器(例如Firefox 3)中实现。

所以情况并不理想,但是如果您想在所有主要浏览器上访问Javascript中的调用函数,可以使用Function.caller属性,可以直接在命名函数引用上访问,也可以在匿名函数中通过arguments.callee财产。


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 569 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信