私はこのようなクラスのインスタンスを割り当てられているグローバルスコープ内の変数いる:いくつかの時点でクラスのインスタンスをJavaScriptで置き換えることはできますか?
window.someInstance = new MyClass();
後に、私は新しいインスタンスでその変数を交換する必要があるが、それは許容/可能ですそれはクラスそのものの方法の中から行うのですか?例:
function MyClass() {
this.myClassMethod = function() {
window.someInstance = new MyClass();
};
}
window.someInstance = new MyClass();
window.someInstance.myClassMethod.call();
奇妙なシナリオですが、正常に動作しますが、これでメモリや参照の問題が発生するかどうかはわかりません。誰もが常にwindow.somereference
を介して間接的にインスタンスをaccessess場合のみ
おかげ
に、より堅牢な実装をacheieveかもしれませんが、インスタンスを置き換えると同じではありません - インスタンスが可能オブジェクトの変数やプロパティなど、一度にいくつかの場所に格納されます。 – pimvdb
なぜそれをクラス自体から置き換える必要がありますか? –
あなたは今私の頭の中に奇妙なコードを書くつもりです... 'this = eval(" new "+ typeof(this)+"() ");' ... XD –