我在一个类中有以下函数:
MyClass.prototype.myFunction = function(item, args)
{
console.log(this);
}
这个函数是从一个我无法改变的外部库中调用的。当它被调用时,控制台将“this”记录为窗口对象,而不是实际的实例化对象。在搜索stackoverflow后,我找到了以下引用:
this根据方法的调用方式而设置,并不是按照方法的编写方式来设置的。因此,对于obj.method(),method()内的this将设置为obj。对于obj.method.call(x),method()内的this将设置为x。它是由调用方式确定的。这也意味着,如果您将其作为回调传递给例如onclick,则this将设置为全局窗口对象,而不是您所期望的。
我假设这就是问题所在,我无法改变它的调用方式。我的问题是,是否有任何方法可以获取包含它的对象的实例,而不管它是如何被调用的?