gpt4 book ai didi

javascript - 隐藏 getter 或添加到 proto 对象中

转载 作者:行者123 更新时间:2023-12-03 02:27:17 25 4
gpt4 key购买 nike

是一种创建 getter 的方法,但隐藏它或将其添加到 proto 中?这里的例子,我使用简单的 OBJ。看看获取 sprite()

    buttonsData[name] = {
name:name,
type:bType,
slot:slot,
get sprite() { return this.slot.currentSprite },
};

但是我发现它非常污染,我怎样才能隐藏它或编写它,这样它就不会在调试终端中干扰我的眼睛?我想隐藏 get sprite() { return this.slot.currentSprite } enter image description here

最佳答案

您可以使用 Object.create() 嵌入匿名原型(prototype) ,但请注意,这稍微恶化drastically improves性能没有任何原因,只是“它在调试终端中干扰了我的眼睛”。

我不提倡在性能关键型代码中使用这种方法 How...

buttonsData[name] = Object.assign(Object.create({
get sprite() { return this.slot.currentSprite }
}), {
name: name,
type: bType,
slot: slot
});

这将创建一个如下所示的对象:

{
name: "Spines",
slot: Slot,
type: "sheetsType",
__proto__: {
get sprite: function () {...},
__proto__: Object
}
}

为了可重用性,最好实现一个,而不是为添加到buttonsData的每个对象创建一个匿名原型(prototype) :

class ButtonsData {
constructor (data = {}) {
Object.assign(this, data)
}

get sprite () { return this.slot.currentSprite }
}

并像这样使用它:

buttonsData[name] = new ButtonsData({ name, type: bType, slot })

关于javascript - 隐藏 getter 或添加到 proto 对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48891874/

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