有几个问题!!

有几个问题!!

 function add(name,sex,age){

         this.name=name,

         this.sex=sex,

         this.age=age,

         this.eat=function(){

          alert(this.name+'---'+this.sex+'---'+this.age);

         }

 }

 var ddd = new add('sjd','18','15');

 ddd();

1.我自己输入了这样的构造函数,为什么浏览器会报错,说ddd is not function?
2.之前课程里说的构造函数,不是应该这样写吗, var ddd=new Add() ??
3.如果我把this 改成add,是不是后面就没办法在外部引用多个不一样的函数了?

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

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

2回答
好帮手慕夭夭 2019-11-06 10:38:21

“慕丝1342”同学你好,面向对象有一点难度,并且概念性的知识比较抽象。同学们在初学阶段,没有实际的经验积累,对这些概念理解还是比较薄弱的,所以可能老师讲解多次,同学仍然有朦胧的感觉。也不用担心,即使视频学两遍学不会都很正常的。

掌握这一块的知识点不急于一时,需要一朝一夕的积累。所以把学习速度放慢,先去复习一下课程内容,课程中的例子都是比较经典的。建议把这些例子多敲几遍,慢慢的去理解。如果有不懂的,可以在问答区提问,老师会帮你解答。

祝学习愉快!

好帮手慕夭夭 2019-05-22 16:50:14

你好同学,解答如下:

  1. ddd是实例化的对象,而代码中ddd()表示调用一个函数,对象不能这样调用,所以调用就会报错告诉你ddd不是一个函数哦。如果想要获取ddd的属性,要通过如下语法,调用对象中的方法哦。

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

  2. var ddd=new add()整个语句是通过构造函数Add实例化了一个具体的对象,构造函数是add。之前的课程中老师也是说的构造器是Function,这个Function是js中本身就有的,每一个函数都会有一个Function对象,所以不用像代码中那样定义一个函数了。这里要重新理解一下,老师并不是说的这一整条语句是构造函数哦。

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

  3. 你好同学,this如果变成add,那么这些属性就是add自身的,就不能实例化对象了。因为函数里面的this在实例化的时候指向实例化对象,所以实例化对象才会拥有了构造函数里面的属性。

祝学习愉快 ,望采纳。

  • 感觉这回复 看了也是有点懵
    2019-11-05 21:31:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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