关于js高程3上原型的问题

https://img4.mukewang.com/5c6ceadf0001253a08000593.jpg

https://img2.mukewang.com/5c6ceae100010bab08000619.jpg

https://img3.mukewang.com/5c6ceae300017f0e12430440.jpg

指向1:构造函数Person原型对象的constructor属性指向Person 这一个构造函数, 且2者全等。不能得出如果2个属性全等,则有指向,而书中指向是单向性,为什么?不清楚书中的指针的含义

问题1:
构造函数Person原型对象的constructor属性指向Person 这一个构造函数, 且2者全等。不能得出如果2个属性全等,则有指向,而书中指向是单向性,为什么?

指向2:构造函数person1的[[prototype]]指向Person构造函数的原型对象,在书中有写到 "虽然通过对象实例访问保存在原型的值,但却不能通过对象实例重写原型的值

问题2:
但是在后面输出3个modify中,很明显原构造函数原型的值可以被对象实例person1或者person2修改了,这是为什么??

PS:有没有什么推荐书可以理解与一下的~~~


海绵宝宝撒
浏览 550回答 2
2回答

慕雪6442864

通过实例的隐式原型__proto__是可以修改构造函数的原型对象(prototype)上的值,因为__proto__跟构造函数的原型对象(prototype)全等( __proto__指向 构造函数的原型对象prototype ),而且__proto__的指向可以被改变var Createobj = function(){}Createobj.prototype.userName = 'ghostwu';var obj = new Createobj();console.log( obj.userName ); //ghostwuobj.__proto__.userName = 'abc';console.log( obj.userName ); //abcvar obj2 = new Createobj();console.log( obj2.userName ); //abc

慕码人2483693

不嫌弃的话,可以看看我之前写的这篇总结。点击跳转
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript