gpt4 book ai didi

javascript - 递增对象 ID

转载 作者:行者123 更新时间:2023-11-29 21:08:45 26 4
gpt4 key购买 nike

var nextid = 0
function Animal(name) {
this.name = name
Object.defineProperty(this, 'nextid',
{value: nextid++, writable: false})
}
var animal1 = new Animal('dog')
var animal2 = new Animal('cat')

我想知道与使用闭包或工厂模式相比,这是否是一种好方法?

我的问题类似于这个线程(建议使用闭包和工厂模式):

Incrementing object id automatically JS constructor (static method and variable)

最佳答案

Id 不应作为构建对象的一部分生成:它们应该分配给对象。

想想一场运动比赛:运行者会选择他们的背侧吗?

function Animal() {

}

var idGenerator = new IdGenerator();
var animal = new Animal();
animal.id = idGenerator.generate();

可能您仍然可以在构造函数中生成 id,但我会尽量避免硬编码 id 生成 注入(inject) idGenerator 相反:

function Animal(idGenerator) {
this.id = idGenerator.generate();
}

顺便说一句,我的两点是你应该采用第一种方法:运行者不会自己分配背侧。

关于javascript - 递增对象 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42728762/

26 4 0
文章推荐: android - PagerSlidingTabStrip 不工作,但我的代码对我来说似乎没问题
文章推荐: javascript - 从 <iframe> 或 中获取变量的值