gpt4 book ai didi

javascript - 使用 JavaScript 类进行池化

转载 作者:行者123 更新时间:2023-11-30 20:53:27 27 4
gpt4 key购买 nike

在编写基于 JavaScript 的游戏时,我通常使用对象池来减少 GC 工作。这通常涉及将构造函数应用于现有对象,例如:

constructor.apply(object, arguments);

这样,构造函数既可以用于创建新对象,也可以用于“设置”现有对象。 (我见过其他做类似事情的池化系统。)

问题是 JavaScript 类构造函数(即使用“class”关键字创建的)只能用“new”调用,这意味着上面的代码不再有效。

我的问题是,是否有一种实用的方法可以将池与通过“​​类”创建的类一起使用?或者这里最好的选择是放弃“类”,而只是在不使用“类”关键字的情况下“手动”设置(所谓的)类?

最佳答案

与其重新应用构造函数,这是一件坏事而且令人困惑,您只需在 init 方法中编写初始化逻辑,然后调用 this.init() 在构造函数中。

当你想重新初始化一个对象时,只要调用obj.init(),大家都明白了。

class Foo {
constructor(...args) {
this.init(...args)
}

init(val) {
this.val = val
}
}

const f = new Foo(42)
console.log(f.val)
f.init(43)
console.log(f.val)

关于javascript - 使用 JavaScript 类进行池化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47917721/

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