可以转换为字符串来判断。举例:
obj = {
a: 1,
b: 2
}
obj2 = {
a: 1,
b: 2
}
obj3 = {
a: 1,
b: '2'
}
JSON.stringify(obj) == JSON.stringify(obj2);//true
JSON.stringify(obj) == JSON.stringify(obj3);//false
在调用 new 操作符的过程中,执行了以下四个步骤:
let obj = new Object();
let Con = [].shift.call(arguments);
obj.__proto__ = Con.prototype
用一句话来说就是:
new 操作符新建了一个空对象,这个对象原型指向构造函数的prototype,执行构造函数后返回这个对象。
let a = [1, 2, 3];
let b = a;
a[0] = 4;
b[0] // 4
let a = {
age: 1
}
let b = Object.assign({}, a)
a.age = 2
console.log(b.age) // 1
2.展开运算符。举例:
let a = {
age: 1
}
let b = {...a}
a.age = 2
console.log(b.age) // 1
JSON方法:
主要是通过JSON.parse()和JSON.stringify()的搭配来实现深拷贝。举例:
let a = {
age: 1,
jobs: {
first: 'FE'
}
}
let b = JSON.parse(JSON.stringify(a))
a.jobs.first = 'native'
console.log(b.jobs.first) // FE
原文:https://www.cnblogs.com/zxxsteven/p/11719906.html