获取调用函数的对象

j

我知道可以arguments.callee.caller.name用来获取调用函数的名称,但是如何获取调用了该函数的对象,即其中的含义this什么

我想知道这一点,因为它涉及到我apply()为另一个对象调用的函数

示例:我在代码的某些部分中

function myFunc(param1, param2) {
  myComplexObject.someFunc();
}

myFunc.call(obj, param1, param2);

现在我要编写代码,myComplexObject.someFunc()并以某种方式obj从上面找到

function someFunc() {
  var callerFuncName = arguments.callee.caller.name;
  var callerFuncObj = ???
}

我希望我在这里有道理...


编辑:这是我真正从事的工作的简化形式。请理解,我没有成熟的调试器或类似的东西。

贝吉

我如何获取调用者函数在其上被调用的对象,即在那意味着什么?

你不能。this只能从调用程序函数的范围访问关键字,并且无法对其进行自省(除非您使用具有JS引擎访问权限的JS调试器)。

因此,您将需要以某种方式将其this作为参数传递给函数,或寻找另一种方式使其可用(例如,作为全局变量)。这可以在调用者函数(setGlobal(this))或setGlobal(obj)也知道该对象的调用者的调用者()中完成。如果您无法更改该代码,那是完全不可能的。

最后的手段是某种形式的旁通道攻击,即,当您知道可能的this值集并知道调用方函数访问了哪些属性时,可以在这些属性上设置吸气剂,以将对象标识为“正在访问” 。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

外部函数调用后获取对象

来自分类Dev

通过函数调用JavaScript获取对象调用者名称

来自分类Dev

在JavaScript中获取对象字段并调用对象函数

来自分类Dev

获取Python 2.7中调用者的函数对象?

来自分类Dev

如何在R中的调用函数环境中获取对象?

来自分类Dev

调用库函数时“试图获取非对象的属性”错误

来自分类Dev

调用对象函数

来自分类Dev

如何从对象调用函数

来自分类Dev

调用对象的构造函数

来自分类Dev

获取块的调用对象

来自分类Dev

直接调用对象时获取传递给`print`的对象名称(不表达`print`函数)

来自分类Dev

函数获取函数作为参数并抛出“numpy.ndarray”对象不可调用

来自分类Dev

如何获取函数的“ this”对象?

来自分类Dev

从对象函数中获取函数

来自分类Dev

对象调用函数的Javascript OR语句

来自分类Dev

Javasctipt从数组调用对象的函数

来自分类Dev

类型动态对象函数调用

来自分类Dev

在嵌套对象中调用函数

来自分类Dev

调用函数作为对象变量?

来自分类Dev

调用内部对象函数javascript

来自分类Dev

PHP多对象函数调用

来自分类Dev

从类函数调用返回对象

来自分类Dev

从对象的方法调用“全局”函数

来自分类Dev

如何从对象内部调用函数

来自分类Dev

使用变量对象调用函数

来自分类Dev

PL / SQL如何在不获取返回对象的情况下调用函数

来自分类Dev

如何从任何可调用对象中获取有意义的函数签名

来自分类Dev

PL / SQL如何在不获取返回对象的情况下调用函数

来自分类Dev

尝试通过在KonckoutJS中调用WebAPI来获取值时出现“对象不是函数”错误