クラスに次の機能があります。
MyClass.prototype.myFunction = function(item, args)
{
console.log(this);
}
この関数は、変更するアクセス権がない外部ライブラリから呼び出されます。呼び出されると、コンソールは、実際のインスタンス化されたオブジェクトではなく、ウィンドウ オブジェクトとして「this」をログに記録します。stackoverflow を検索すると、次の引用が見つかりました。
これは、メソッドの記述方法ではなく、メソッドの呼び出し方法に従って設定されます。したがって、obj.method() の場合、これは method() 内の obj に設定されます。obj.method.call(x) の場合、method() 内の this は x に設定されます。呼び方で決まります。これが意味することは、例えば onclick へのコールバックとして渡すと、これは期待したものではなく、グローバル ウィンドウ オブジェクトに設定されるということです。
これが起こっていることであり、その呼び方を変えることはできないと思います。私の質問は、それが呼び出された方法に関係なく、オブジェクトのインスタンスを取得する方法はありますか?