我的代码涉及根据一些测试用例向对象添加属性。以下是我做的两种方式。我在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;
这两种方式有什么区别?
答案 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
将仅包含key3
和key4
。
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;
表示将新属性/值添加到现有对象。