是否可以在 javascript 中获取调用者上下文?

新手上路,请多包涵
var test = {
    demo: function(){
      //get the caller context here
    }
}
//when this gets called, the caller context should be window.
test.demo();

我试过 arguments.calleearguments.callee.caller ,但没有运气……

原文由 new_perl 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 330
1 个回答

Since this keyword referes to ThisBinding in a LexicalEnvironment , and javascript (or ECMAScript) doesn’t allow programmatic access to LexicalEnvironment (in事实上,没有对整个 Execution Context ) 的编程访问,所以 不可能 获得调用者的上下文。

此外,当您在全局上下文中尝试 test.demo() 时,根本不应该有 调用者,也没有附加 上下文调用者,这只是一个 全局代码,而不是调用上下文。

原文由 otakustay 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏