iiuc 你的问题,下面的代码应该做到这一点——本质上是使用一个变量,p
在这种情况下被称为 hookproperties
的 self
:
第一个答案:单个嵌套字段:
{
properties: {
local p = self,
a: 'value for a',
b: 'value for b',
nested: {
a: p.a,
b: p.b,
},
},
}
第二个答案:许多嵌套字段:
{
// Also add entire `o` object as fields named from `field_arr`
addNested(o, field_arr):: o {
[x]: o for x in field_arr
},
base_properties:: {
a: 'value for a',
b: 'value for b',
},
// We can't "build" the object while looping on it to add fields,
// so have it already finalized (`base_properties`) and use below
// function to add the "nested" fields
properties: $.addNested($.base_properties, ["n1", "n2", "n3"])
}