function foo({asdf: {a1, a2}, jkl}) {
document.body.textContent = `
asdf.a1 = ${a1},
jkl = ${jkl},
`
}
foo({asdf: {a1: 5, a2: 6, a3: 7}, jkl: 8})
好破坏力。 a1
,a2
和jkl
被带到函数的作用域范围内。
但是我仍然引用整个asdf
吗?
function foo({asdf: {a1, a2}, jkl}) {
document.body.textContent = `
asdf.a1 = ${a1},
jkl = ${jkl},
asdf.a3 = ${asdf.a3}
`
}
foo({asdf: {a1: 5, a2: 6, a3: 7}, jkl: 8})
现在我得到ReferenceError: asdf is not defined
。显然,在将asdf
分解为{a1, a2}
的过程中,我丢失了对asdf
的引用!
是否可以以仍然保留对整个参数的引用的方式来破坏参数?