让我们说我想用旧方式复制两个对象:
var firstObj = {
key1: "val1",
key2: "val2"
}
var secondObj = {
key1: "val1",
key2: "val2",
key3: "val3",
key4: "val4"
}
如果我使用解决方案
for(var k in firstObj) secondObj[k]=firstObj[k];
很明显,我只是指那个对象的属性'内容而不是财产本身。如何复制属性名称?
我问,因为" k"是指" key1,key2,... keyn"而" obj [k]"指的是属性包含的内容。 如果我正在进行for循环以列出属性及其内容,我必须同时参考" k"和obj [k]是这样的:
for(var k in secondObj) {
console.log(k + " : " + secondObj[k]);
}
但是在提到两个对象时,我并没有提到' k'再
答案 0 :(得分:1)
如何复制属性名称?
使用带括号表示法的变量k
和property accessor。
object.property // dot notation object['property'] // bracket notation
for (var k in firstObj) secondObj[k] = firstObj[k];
// ^^^
k
包含字符串而不是属性而不是对象。
基本上它表示取对象k
的属性名secondObj
并为其赋值。
分配后,对象secondObj
的属性名称为k
。