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

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

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

它被添加,然后在JavaScript中被弃用,但ECMAScript完全省略了它。一些浏览器(Mozilla,IE)一直支持它,并且在地图上没有任何删除支持的计划。其他人(Safari,Opera)已经采用了对它的支持,但是对旧浏览器的支持是不可靠的。

是否有充分的理由将这一宝贵的功能放在一个边缘?

(或者,是否有更好的方法来获取调用函数的句柄?)


牧羊人nacy
浏览 570回答 3
3回答

富国沪深

用它更好命名函数比辩论更重要。 function foo () {      ... foo() ...  }比 function () {      ... arguments.callee() ...  }命名函数将通过打电话者财产: function foo () {      alert(foo.caller);  }比 function foo () {      alert(arguments.callee.caller);  }不推荐的原因是当前ECMAScript设计原则.

慕桂英3389331

arguments.callee.caller是不虽然它确实使用了Function.caller财产。(arguments.callee将只提供对当前函数的引用)Function.caller,虽然根据ecma 3不符合标准,但是跨所有当前主流浏览器.arguments.caller 是不赞成Function.caller,并且没有在当前的一些主要浏览器(例如Firefox 3)中实现。所以情况并不理想,但是如果您想在所有主要浏览器上访问Javascript中的调用函数,可以使用Function.caller属性,可以直接在命名函数引用上访问,也可以在匿名函数中通过arguments.callee财产。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript