老师 构造函数的prototype 是实例的原型 那么

来源:1-1 课程简介

帅哥但自卑

2021-08-09 08:30:24

1.      People.prototype.name='tom';

var student =new People();

3.    student.__proto__.name='tom';

老师 那么1 跟3 的作用是一样的吗

写回答

1回答

好帮手慕慕子

2021-08-09

同学你好,作用是一样的,但是两句代码书写位置有区别,具体区别参考如下解析:

1、构造函数的prototype上添加的属性,不管是在实例化对象之前还是实例化对象之后,所有实例都可以访问到,如下:

http://img.mukewang.com/climg/611094b009c5db9c14100534.jpg

http://img.mukewang.com/climg/611094b9099296ca06080324.jpg

2、实例的__proto__上添加属性,只能在实例化之后设置才可以,所有实例也都可以访问该属性。如下:

http://img.mukewang.com/climg/6110960d09602dbd14560580.jpg

http://img.mukewang.com/climg/61109616092d232e06660300.jpg

虽然两者的作用一样,但是一般更推荐在函数的prototype上添加让所有实例共享的属性。祝学习愉快~

0

0 学习 · 15276 问题

查看课程