js 编程:用for循环,把旧对象全给新对象,不用展开运算符(...)
//用for循环,不利用 展开运算符(...),把旧对象全赋值给新对象,也算是两个对象合并。
// 可是无法解决 覆盖的问题
let obj={a:1,b:'学',c:() => console.log('不要急噪呦!')}
let jj={}
//不利用 展开运算符(...)给新对象赋值,想用for循环,
// 可是无法解决 覆盖的问题
let obj={a:1,b:'学',c:() => console.log('不要急噪呦!')}
let jj={}
本帖最后由 xymoc 于 2024-3-15 18:08 编辑
试试下面的代码吧,不理解你说的覆盖是什么意思
let obj={a:1,b:'学',c:() => console.log('不要急噪呦!')}
let jj={}
for (const key in obj) {
jj = obj
}
console.log(jj)
Object.assign(jj, obj)
不需要 for 循环也可以。
使用 for 循环还需要考虑一些特殊名词不能覆盖,例如 `prototype`/`__proto__`。使用自带的方法就不需要担心这个问题了。 xymoc 发表于 2024-3-15 18:04
试试下面的代码吧,不理解你说的覆盖是什么意思
let obj={a:1,b:'学',c:( ...
确实解决了。
可为什么呢?
我理解的用 for in
应该是属性、值 单独一个一个的给加上去。就像:jj ={key + ‘ :‘ +obj}前者是属性,后面是值。
你写的这样,jj = obj
应该是只把值 给过去了呀, 为何是一套都甩过去了 ??? 爱飞的猫 发表于 2024-3-15 18:31
不需要 for 循环也可以。
...
你说的很对,什么时候我确实不需要用它时,会想起你的提醒的。 let dog = { name: "Spot", breed: "Dalmatian" };
// 访问属性 name
dog.name
// 修改属性 name
dog.name = "joy"
// 访问,赋值也可以像下面这样
dog["name"]
// 字符串字面量的name可以换成变量
let key = "name"
dog
这边建议你简单的学习一下js的语法 y294945022 发表于 2024-3-15 19:47
确实解决了。
赋值语句就是给某个变量赋值。比如 a=1 是给变量a复制。
如果是对象赋值, a=value; 这时候就等于把key创建出来,然后赋值value。
页:
[1]