2014-09-22 43 views
0

我有一个JavaScript函数,如果从另一个函数调用,它需要以不同的方式运行。我没有控制我的函数的调用,所以我不能这样做基于参数传递。识别JavaScript函数调用者的最佳方法

所以,我打算确定哪个函数正在进行调用,并且如果该调用来自此特定函数,则表现会有所不同。要做到这一点,我发现这些方法:

  • 通过arguments.caller获取的参考,但我发现它是一个即将被弃用的属性。
  • 通过Function.caller获取参考,但它不是一个标准。

所以我发现的每种方法似乎都有一个缺陷。这是推荐的方法吗?顺便说一下,我正在使用ExtJS框架,也许有一个特定的方法来做到这一点。

+5

我不知道有任何“推荐“方法,因为这样做的必要性通常被认为是设计缺陷。如果你能解释更多的情况,这将有所帮助。 – Pointy 2014-09-22 16:26:20

+1

我会走得更远,并说没有推荐的方法来识别调用者并以这种方式解决您的问题。推荐的方法是修复设计,以便可以使用良好设计模式的良好支持的基于标准的代码解决您的问题。这可能会涉及从更高层次反思整体问题,而不是试图在低层次上解决问题。 – jfriend00 2014-09-22 16:31:06

回答