gpt4 book ai didi

javascript - 如何使属性动态化(在执行代码之前未知)?

转载 作者:可可西里 更新时间:2023-11-01 10:42:35 25 4
gpt4 key购买 nike

这是我使用的数据格式:

ChecksCollection = new Mongo.Collection(null);
ChecksCollection.insert({
oddsChecked: ['', ''],
oddsAverages: ['', ''],
oddsCompeting: ['', ''],
...

dynamicProperty 可以是 'oddsChecked'、'oddsAverages'、'oddsCompeting' 等等。这取决于执行时间。如何使下面的代码正常工作?

var odds = ChecksCollection.findOne().dynamicProperty[index];

最佳答案

您可以使用 transform使用 Object.defineProperty 创建 setter/getter 的选项:

ChecksCollection.findOne({}, {
transform: doc => Object.defineProperty(doc, 'dynamicProperty', {
get: function getDynamicProperty() {
// Your logic here
// This should return a value (unless you want some obscure
// side-effecting getter, which no you don't)

if (this.something) {
return 42;
}
else {
return 53;
}
}
})
);

只要不使用箭头函数(锁定this),就可以使用this 访问getter 所在的对象。

关于javascript - 如何使属性动态化(在执行代码之前未知)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35056352/

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