在Javascript中向对象添加属性的两种方法之间的差异

时间:2016-08-19 10:26:27

标签: javascript reactjs

我的代码涉及根据一些测试用例向对象添加属性。以下是我做的两种方式。我在reactjs中使用此对象进行内联样式。

var myObject = {}

//some code

myObject = {
key1: value1,
key2:value
} 

//some code

myObject = {
key3: value3,
key4: value4
}

并未始终如一地应用所有属性(样式)。所以我尝试这样做,它运作正常。请解释为什么会这样。

var myObject = {}

//some code

myObject = {
key1: value1,
key2:value
} 

//some code

myObject.key3 = value3;
myObject.key4 = value4;

这两种方式有什么区别?

3 个答案:

答案 0 :(得分:1)

在第一个片段中,您没有向对象添加属性,而是覆盖了整个myObject。在第二个片段中,您将一个值分配给一个键,即。添加带有值的属性。

例如:

var i = {num: 1};
i.num = 2;
console.log(i.num); // 2
i = {str: "Hello"};
console.log(i.num); // undefined
console.log(i.str); // "Hello"
i.num = 1;
console.log(i.num); // 1
console.log(i.str); // "Hello"

答案 1 :(得分:1)

在第一种情况下考虑使用Object.assign,否则myObject将仅包含key3key4

var myObject = {}

//some code

myObject = {
  key1: value1,
  key2:value
} 

//some code

Object.assign(myObject,{
  key3: value3,
  key4: value4
})

答案 2 :(得分:0)

两种情况之间存在差异

第一种情况:

myObject = {     key1:value1,     KEY2:值     }

表示创建一个新对象并将其分配给变量myObject

在第二种情况下:

myObject.key3 = value3;

myObject.key4 = value4;

表示将新属性/值添加到现有对象。