У меня есть следующая функция в классе:
MyClass.prototype.myFunction = function(item, args)
{
console.log(this);
}
Эта функция вызывается из внешней библиотеки, у меня нет доступа к изменению. Когда он вызывается, консоль регистрирует "this" как объект окна вместо фактического объекта instanced. После поиска stackoverflow я нашел эту цитату:
это устанавливается в соответствии с тем, как вызывается метод, а не в соответствии с тем, как этот метод написан. Итак, для obj.method() это будет установлено в obj внутри метода(). Для obj.method.call(x) это внутри метода() будет установлено в x. Он определяется тем, как он называется. Это также означает, что если вы передадите его в качестве обратного вызова, например, onclick, этот параметр будет установлен на глобальный объект окна, а не на то, что вы ожидаете.
Я предполагаю, что это то, что происходит, и я не могу изменить способ его вызова. Мой вопрос в том, есть ли в любом случае, чтобы получить экземпляр объекта его независимо от того, как он называется?