Javascript JS:有没有办法告诉什么对象称为函数?

Javascript JS:有没有办法告诉什么对象称为函数?,javascript,Javascript,在函数中,有没有一种方法可以获取对调用它的对象的引用?我在页面上有两个相同的Flash对象实例,每个实例都可以通过ExternalInterface调用JS,我无法为每个Flash对象编写代码并传递不同的ID,因为它是同一Flash对象的两个实例,所以JS有没有办法获取调用函数的引用 谢谢 或者,但是您可能希望重新组织代码以避免使用它们。真的有另一种方法可以得到你想要的——我保证 编辑:AnthonyWJones指出,你实际上在寻找接线员 this关键字引用上下文 对象(也称为当前对象)。在里面

在函数中,有没有一种方法可以获取对调用它的对象的引用?我在页面上有两个相同的Flash对象实例,每个实例都可以通过ExternalInterface调用JS,我无法为每个Flash对象编写代码并传递不同的ID,因为它是同一Flash对象的两个实例,所以JS有没有办法获取调用函数的引用

谢谢

或者,但是您可能希望重新组织代码以避免使用它们。真的有另一种方法可以得到你想要的——我保证

编辑:AnthonyWJones指出,你实际上在寻找接线员

this关键字引用上下文 对象(也称为当前对象)。在里面 一般来说,在方法中,这是指 调用对象


我不知道ExternalInterface,但在执行函数期间,您是否尝试过检查
对象

当然你也可以用闭包。最终,您必须给Flash对象一个要执行的函数。例如,我有
myObj1
myObj2
,它们采用回调方法
fnCallback
,但由于某种原因,在执行这些函数时,它们不会设置
这个
上下文。因此,我可以这样做:-

function setCallback(obj, fn)
{
  obj.callback = function() {fn.apply(obj, arguments);}
}

setCallback(myObj1, fnCallback);
setCallback(myObj2, fnCallback);

现在,我可以使用<代码> f>代码> fnCalpEnter作为对调用该函数的特定对象的引用。

如果您正在寻找一种方法来查找一个称为函数的非函数元素,您可以考虑使用该事件。这是一个非常方便的函数,在传递事件对象时我经常使用它

function getTargetElement(evt) {
  evt = (evt) ? evt : ((window.event) ? window.event : "");
  var elem;
  if (evt.target) {
      elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target;
  } else {
      elem = evt.srcElement;
  }
  return elem;
}
因此,例如,如果从单击的元素调用函数“find(event);”,则可以对find进行编码,以使用此方法获取事件对象:

function find(evt){
  var clickedObj = getTargetElement(evt);
  alert(clickedObj.tagName); //alerts "TD"
}

在实例化Flash对象时,不能将ID传递给它吗?(通过查询字符串或参数)。然后您可以在JavaScript函数调用中使用该ID。

调用方是否将调用当前函数的函数与调用该函数的对象相关联,这与调用该函数的对象不同?我不太清楚您的意思,请您再详细说明一下好吗?你是说JS函数中的“this”是指调用该函数的flash对象吗?谢谢。任何对象都可以作为“this”上下文提供给函数执行,我不确定这是否适用于这种情况,因为我对ExternalInterface没有直接的经验,我的建议是你可以试试。让我知道它是否有效。我只做过一点点闪光。