文章目录
正文
该题涉及Java Script原型链污染
可以看到,后端编程语言为Node.js,
简单来讲,通过 newUser.__proto__ 可以访问到新对象的原型
未污染时:
baseUser = {
a:1
}
user = {
a:2,
b:1,
__proto__:{
c:3
}
}
// 浅复制一个对象,第一个参数位是对象的内容,后面的参数位是多个对象内容叠加进去,进行复制出一个全新的对象
let newUser = Object.assign({}, baseUser, user)
// 输出结果为{a:2,b:1},无污染
console.log(newUser)
// {a: 2, b: 1}
console.log(newUser.__proto__)
//{c