gpt4 book ai didi

javascript - 在 Javascript 中是否可以创建具有动态(未确定)属性/成员的对象?

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

我尝试在 Javascript 中实现这一点:

var a = new MyObj();
console.log(a.Foo()); // Print Foo
console.log(a["Bar"]()); // Print Bar

基本上,我事先不知道所需的属性/成员名称,但取决于我返回它的调用,有点类似于 C# ExpandoObject(动态)。

是否可以用 Javascript 制作这样的对象?

注意:我知道可以添加属性,但是,就我而言,我事先不知道需要添加哪些属性。

a.Foo = () => { return "Foo"; }

这是不可能的,因为我不知道需要 Foo

最佳答案

你可以使用 Proxy并通过返回一个函数来实现一个 getter,该函数是对键的闭包。

var a = new Proxy({ baz: 42 }, {
get: function (target, prop, receiver) {
return prop in target
? () => target[prop]
: () => prop;
}
});

console.log(a.Foo()); // Foo
console.log(a["Bar"]()); // Bar
console.log(a.baz()); // 42

关于javascript - 在 Javascript 中是否可以创建具有动态(未确定)属性/成员的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50797402/

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