[英]Adding a simple nested field to object
我知道这是非常基本的,但我无法解决它。 我只需要在 object 内的 object 中添加一个字段。
var shipping = {}
shipping["only"]["price"] = $(this).val();
一直说我can't set price of undefined
。
在我检查的所有地方,我都可以执行此嵌套分配。
您的代码含义的语义错误。 这个:
shipping["only"]["price"] = $(this).val();
...有点翻译为:
$(this).val()
(为方便起见,我们将其称为R
)shipping["only"]
(我们称之为O
)O
的price
属性分配给值R
。 在第 2 步,因为shipping
是值{}
, shipping["only"]
是undefined
,这就是为什么你得到它不能分配给undefined
的财产price
的错误。
如果您的意图是创建一个only
object 的属性并设置该新 object 的price
值,则您需要执行以下操作:
const shipping = {
only: {
price: $(this).val()
}
};
...或者您可以执行两个赋值语句,一个填充.only
,然后一个填充子属性:
shipping.only = {};
shipping.only.price = $(this).val();
您可以使用 defineProperty()
var shipping = {}
Object.defineProperty( shipping, 'only', {
value: { price: $(this).val() },
writable: true,
enumerable: true,
configurable: true
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.