Skip to content

输出什么?

javascript
const user = {
	email: "e@mail.com",
	password: "12345"
}

const updateUser = ({ email, password }) => {
	if (email) {
		Object.assign(user, { email })
	}

	if (password) {
		user.password = password
	}

	return user
}

const updatedUser = updateUser({ email: "new@email.com" })

console.log(updatedUser === user)

A. false B. true C. TypeError D. ReferenceError

答案: B

解析:

updateUser 函数更新user的 emailpassword 属性的值, 如果它们的值传入函数, 函数返回的就是 user 对象。 updateUser 函数的返回值是 user 对象,意味着updatedUser的值与 user 指向的是同一个 user 对象。updatedUser === usertrue.