一个类的实例可以在JavaScript中替换它自己吗?
我在全局范围内有一个变量,它被分配了一个像这样的类的实例:
window.someInstance = new MyClass();
在稍后的某个时刻,我需要用一个新实例替换该变量,但是从类本身的一个方法内部实现它可能吗? 例如:
function MyClass () {
this.myClassMethod = function () {
window.someInstance = new MyClass();
};
}
window.someInstance = new MyClass();
window.someInstance.myClassMethod.call();
我知道一个奇怪的场景,但它工作干净,我不确定这是否会产生任何内存或引用问题?
谢谢
只有每个人都通过window.somereference
间接访问实例。 只要有人做了var x = window.someinstance
那么你就失去了间接性,你的技巧就会停止工作。
通过将间接方向放置在实例本身的变量中而不是全局变量中,可以实现更强大的实现
function Instance(){
this.impl = ...;
}
Instance.prototype = {
changeImpl: function(){ this.impl = new Impl(); },
//delegate all other methods
f1: function(){ return this.impl.f1(); }
}
链接地址: http://www.djcxy.com/p/10261.html
上一篇: Can an instance of a class replace itself in JavaScript?
下一篇: How does it work?