谁在调用我的javascript方法?
我试图理解我的方法中的“this”引用是什么,该方法声明如下: (按照要求的答案更正,但仍不起作用) 它显示:谁在调用我的javascript方法?,javascript,Javascript,我试图理解我的方法中的“this”引用是什么,该方法声明如下: (按照要求的答案更正,但仍不起作用) 它显示: this.focused is undefined 那么,如何获取此函数的调用者?您可以使用: var name = arguments.callee.caller.name; 您可以使用: var name = arguments.callee.caller.name; 我调试它的方法是添加一行 控制台信息(此) 如果您正在使用FireBug进行开发,它将立即向您展示正在发生的
this.focused is undefined
那么,如何获取此函数的调用者?您可以使用:
var name = arguments.callee.caller.name;
您可以使用:
var name = arguments.callee.caller.name;
我调试它的方法是添加一行 控制台信息(此)
如果您正在使用FireBug进行开发,它将立即向您展示正在发生的事情。“this”是谁取决于调用它的位置-它可能是“window”对象。我调试它的方法是添加一行 控制台信息(此)
如果您正在使用FireBug进行开发,它将立即向您展示正在发生的事情。“this”是谁取决于从何处调用-它可能是“window”对象。如何:
obj = new Myclass() {
this.focused = function() {
alert("caller = " + Function.caller.name);
}
}
那么:
obj = new Myclass() {
this.focused = function() {
alert("caller = " + Function.caller.name);
}
}
如果要获得预期的结果,必须正确定义对象
Myclass = function() {
this.focused=function() {
alert("caller = " + this.focused.caller);
};
}
obj = new Myclass();
如果要获得预期的结果,必须正确定义对象
Myclass = function() {
this.focused=function() {
alert("caller = " + this.focused.caller);
};
}
obj = new Myclass();
看起来问题出在事件注册上,使用
window.onfocus = self.focused;
它不起作用,但有一个
var self = this;
window.addEventListener("focus", function() { self.focused(); }, false);
它工作得很好
我只是想知道为什么它也不适用于:
var focused = this.focused;
window.addEventListener("focus", function() { focused(); }, false);
看起来问题出在事件注册上,使用
window.onfocus = self.focused;
它不起作用,但有一个
var self = this;
window.addEventListener("focus", function() { self.focused(); }, false);
它工作得很好
我只是想知道为什么它也不适用于:
var focused = this.focused;
window.addEventListener("focus", function() { focused(); }, false);
这是无效的javascript。花括号不能立即跟随函数调用。@Mike Samuel出于某种原因,它在这里工作,我在Xul应用程序中使用此javascript。我唯一不能做的就是显示某个函数的调用方(看起来只针对事件)。这不是有效的javascript。花括号不能立即跟随函数调用。@Mike Samuel出于某种原因,它在这里工作,我在Xul应用程序中使用此javascript。我唯一不能做的就是显示某个函数的调用者(看起来只针对事件)。它没有打印任何内容。如果我打印
arguments.callee.caller
它会打印null
。现在,从哪里调用它,我不知道。。这就是我想要发现的,它什么也没印出来。如果我打印arguments.callee.caller
它会打印null
。现在,从哪里调用它,我不知道。。这就是我试图发现的东西。“取决于它从哪里被调用”,这就是我试图发现的东西……)“取决于它是从哪里被调用的”,这正是我试图发现的使用函数本身的名称:这就是我所做的,它打印出这个。focused是未定义的
@Tom Brito那是我关于这个主题的知识的终点,抱歉。使用函数本身的名称:这就是我所做的,它打印出这个。focused是未定义的
@Tom Brito那是我关于这个主题的知识的终点,抱歉。它被更正了,也使用了var obj=new Myclass
,但是它仍然打印一个错误this.focused是未定义的
它被更正了,也使用了var obj=new Myclass
,但是它仍然打印一个错误this.focused是未定义的