代码拉取完成,页面将自动刷新
// 原型链:多个对象之间通过 `__proto__` 链接起来的这种关系就是原型链。
// 浅拷贝:只拷贝对象的第一层,如果对象内容还有对象的话,其实拷贝是一个引用地址,对此对象(对象中的对象)的修改会相互影响。
// 深拷贝:递归浅拷贝的过程。
const obj = {
age: 18,
info: {
name: 'xxx',
},
}
// 浅拷贝会相互影响,【改对象中的复杂数据类型中的内容会相互影响】
const newObj = {}
for (let attr in obj) {
newObj[attr] = obj[attr]
}
// 这叫改内容
// newObj.info.name = 'yyy'
// 这叫改引用地址,不会影响原来的
newObj.info = { name: 'yyy' }
console.log(obj.info.name) // 'xxx'
// 深拷贝,【都不会相互影响】
/* const newObj = JSON.parse(JSON.stringify(obj))
newObj.info.name = 'yyy'
console.log(obj.info.name) // 'xxx' */
// 两个完全是一个东西,【改啥都会相互影响】
/* const newObj = obj
newObj.age = 19
console.log(obj.age) */
/* const fn1 = () => {}
function fn2() {}
fn1.aaa = function () {}
fn2.bbb = function () {} */
function p(i) {
return new Promise((resolve) => {
setTimeout(function () {
resolve(i)
}, 2000)
})
}
/* async function fn() {
for (let i = 0; i < 100; i++) {
const r = await p(i)
console.log(r)
}
}
fn() */
const arr = []
for (let i = 0; i < 100; i++) {
arr.push(p(i))
}
// 并发多个请求
// 并且 r 里面的返回结果和 arr 里面的 Promise 的书写顺序是一致的
Promise.all(arr).then((r) => {
console.log(r)
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。