实例化函数和原型模式问题

实例化函数和原型模式问题

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,理解的有点问题,解答如下:

1、 实例化对象是把某一个构造函数变成一个具体的对象,并不是变成Object的一个实例。

2、这里的Object,fn都是构造函数

http://img1.sycdn.imooc.com//climg/5e18379b090db11403300044.jpg

http://img1.sycdn.imooc.com//climg/5e1837a40963013403270057.jpg

通过new实例化成对象,obj是Object函数的一个实例,person1对象是fn函数的一个实例 。

3、如果将原型定义在外面不能传参,如果放在函数里面是可以的:

http://img1.sycdn.imooc.com//climg/5e18387509f8089a04710219.jpg

这种写法也可以,但是不太常用。

4、通过this是定义在对象上的,通过原型是定义在__proto__属性上的:

http://img1.sycdn.imooc.com//climg/5e1838c309cffd2104170227.jpg

http://img1.sycdn.imooc.com//climg/5e1838ce09f9e27a03630163.jpg

两个不需要类比。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 花生香又脆 提问者 #1
    懂了,谢谢老师,想问一下,什么时候属性和方法应该定义在对象上,什么时候应该定义在prototype属性上呢?有什么区别吗?
    2020-01-10 21:08:02
  • 花生香又脆 提问者 #2
    视频里说prototype属性是所有的函数都自带的,设置在这个属性上的话,是其他的函数也都可以调用吗?
    2020-01-10 21:15:15
好帮手慕星星 2020-01-11 09:42:02

同学你好,问题解答如下:

1、大多数属性会添加在构造函数内容,方法会添加原型上。因为new实例化的过程,构造函数内部的属性或者方法会被重复创建占用空间,而原型上不会重复创建占用空间,会所有对象实例共享它所包含的属性和方法。

2、其他函数不能调用,是所有实例化出的对象可以共享。例如:

http://img1.sycdn.imooc.com//climg/5e1927dd09fccee404520259.jpg

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师