gpt4 book ai didi

javascript - JS对象属性复制: what is happening behind the scenes?

转载 作者:行者123 更新时间:2023-12-03 05:02:34 26 4
gpt4 key购买 nike

假设我想以旧方式复制两个对象:

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”

最佳答案

How is the property name also copied?

使用变量kproperty accessor带括号符号。

object.property    // dot notation
object['property'] // bracket notation
for (var k in firstObj) secondObj[k] = firstObj[k];
// ^^^

k 包含字符串,而不是属性,也不是对象。

基本上,它表示获取对象 secondObj 的属性名称 k 并为其赋值。

赋值后,对象secondObj有一个属性,其名称为k的值。

关于javascript - JS对象属性复制: what is happening behind the scenes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42160442/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com