【发布时间】:2012-02-17 16:47:11
【问题描述】:
看起来,Rhino 不支持函数的 caller 属性 - 有谁知道是否有允许这样做的分支,即使只是在解释器模式下?
如果没有,是否有人对如何添加它有任何一般的想法?
【问题讨论】:
标签: java javascript rhino
看起来,Rhino 不支持函数的 caller 属性 - 有谁知道是否有允许这样做的分支,即使只是在解释器模式下?
如果没有,是否有人对如何添加它有任何一般的想法?
【问题讨论】:
标签: java javascript rhino
从来没有听说过javascript中的Function.prototype.caller,但是有arguments.callee.caller,根据互联网,Rhino确实不支持;
如果您需要获取堆栈跟踪,有一个解决方案的想法: http://groups.google.com/group/mozilla.dev.tech.js-engine.rhino/browse_thread/thread/a8db6d5c4c729f0e/a5f717c02af610ea?pli=1
【讨论】:
arguments.callee 只是给你一个对当前函数的引用——因此arguments.callee.caller 正在获取当前函数的caller 属性。
stack属性在Rhino中获取堆栈跟踪,所以我认为没关系。
arguments.callee.caller 获取父范围函数。 (function foo() { return (function bar() { return arguments.callee.caller.name) })() })() -> foo