看了问答区的一些说明,还是没理解实例化和直接调用的区别

看了问答区的一些说明,还是没理解实例化和直接调用的区别

正在回答 回答被采纳积分+1

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

2回答
好帮手慕夭夭 2020-04-20 19:58:18

同学你好,要学会举一反三哦。之前老师讲解的通过new Test()把构造函数实例化,所以这里new Computer()也是实例化 。这里使用实例化的方式,是因为Computer也是一个构造函数,建议再去视频中看看代码。如果还是区分不了,最好是复习一下前面的课程,否则老师给你讲解了,你没有基础,还是会很迷惑的哦。面对对象视频地址:

https://class.imooc.com/course/791

祝学习愉快 ~

好帮手慕夭夭 2020-04-19 11:32:14

同学你好,本案例中看不出来什么区别,可以参考如下例子:

在学习前面的面向对象时,我们知道如下Test就是一个构造函数,构造函数中定义了属性name。p是实例化对象,new Test()就是把构造函数实例化,实例化对象p就会继承Test的属性。

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

所以p可以调用到name,如下输出name:

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

调用就是直接使用函数名加括号的语法,如果如下构造函数,使用普通函数调用的方式。那么p接收的就是函数调用之后的返回值。这里没有给函数设置返回值,所以为undefined。undefined没有name属性,调用就会报错:

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

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

如果同学不理解这些,建议去复习一下前面阶段的《js面向对象》,以巩固所学知识。

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

  • 提问者 背上我的小书包 #1
    老师这个例子理解了,但是我看是视频里好像是new Computer();这样写的,这个算时调用吗,还是实例化,没理解为啥写成这样。
    2020-04-20 18:53:26
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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