老师您好, 关于原型的问题
来源:1-1 课程导学

燎丶Trance
2021-11-11
function User() {}
User.prototype = { username: 'alex' }
var a = new User()
var b = new User()
console.log(a.username)
console.log(b.username)
console.log('=======================================================================')
User.prototype = { username: 'jack' }
console.log(a.username)
console.log(b.username)
实例不是共享同一个原型对象空间吗, 正常来说应该指向同一块内存空间
为什么我在先创建了2个实例后再覆盖原型对象, 但是根据打印结果来看却还是指向原来的原型对象空间
写回答
1回答
-
keviny79
2021-11-11
function User () { }
User.prototype = { username: 'alex' }
var a = new User()
var b = new User()
// 到这个位置, a.__proto__,b.__proto__,User.prototype 一起指向{ username: 'alex' }这个原型对象空间
console.log(a.username)
console.log(b.username)
console.log('=======================================================================')
User.prototype = { username: 'jack' }
// 到这个位置改变 User.prototype原型属性指向,让其指向新的原型对象空间【 { username: 'jack' }】
// 但是 a.__proto__,b.__proto__,还指向着原来的{ username: 'alex' }原型对象空间
console.log(a.username)//依然访问{ username: 'alex' }原型对象空间
console.log(b.username)//依然访问{ username: 'alex' }原型对象空间
012021-11-11
相似问题