gpt4 book ai didi

javascript - 类的实例可以在 JavaScript 中替换自身吗?

转载 作者:数据小太阳 更新时间:2023-10-29 04:48:32 27 4
gpt4 key购买 nike

我在全局范围内有一个变量,它被分配了一个这样的类的实例:

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(); }
}

关于javascript - 类的实例可以在 JavaScript 中替换自身吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com