繁体   English   中英

向 object 添加一个简单的嵌套字段

[英]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();

...有点翻译为:

  1. 评估$(this).val() (为方便起见,我们将其称为R
  2. 评估shipping["only"] (我们称之为O
  3. Oprice属性分配给值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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM