向现有 js 对象添加属性的两种方法有什么区别?



假设我们需要向现有的js对象添加一个属性

var billingData = {}

在我的情况下,我想将输入值存储在js对象中
以下是基本输入

<input type="text" class="form-control" id="billingFullName">

基本上,我们有两种方法将属性添加到js对象中:
第一种:

billingData["billingFullName"] = document.getElementById('billingFullName').value

第二个:

billingData.billingFullName = document.getElementById('billingFullName').value

它们之间有什么区别

我之所以这么问,是因为当我使用AJAX将js对象提交给MVC Controller时,其中使用[]表示法添加了属性,Controller中的模型似乎为null。然而,点符号似乎解决了这个问题,我想知道为什么。。

通常,当您需要动态定义属性时(如使用变量(,或者如果键的格式不适合点表示法,则使用括号表示法:

const obj = {}
const someKey = 'key'
obj[someKey] = 'somevalue'
console.log(obj.key) // 'somevalue' 
console.log(obj.someKey) // undefined 

点记法是当你已经知道关键:

const obj = {}
object.key = 'someValue'

最新更新