老师,请问下下这里的this是指function本身还是创建的person

老师,请问下下这里的this是指function本身还是创建的person

http://img1.sycdn.imooc.com//climg/5ad0128e0001f96402580149.jpg我始终没搞清楚那个流程,能不能给张图描述下流程?按照我的理解,我把person1的参数传进了person还是function的属性和方法中,那就相当于是person拥有了新的属性和方法,和person1没关系啊,此时person的指针指向它所改变的属性和方法而已

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

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

2回答
小于飞飞 2018-04-13 15:50:28

这种方式调用构造函数实际上会经历4个步骤:

1. 创建一个新对象;

2. 将构造函数的作用域赋给新对象,因此,this就指向了这个新对象;

3. 执行构造函数中的代码,即为这个新对象添加属性、方法;

4. 返回新对象。 

所以this指向当前实例化的对象。希望对你有帮助,祝学习愉快。


  • 提问者 慕粉3125272 #1
    老师,再请问个问题,在构造函数内 1,this.name=name this.prototype.name=name是不是可以化等号 , 2.象per1=new person()实质是传递给新对象所有的属性和方法,还是prototype的属性和方法, 3.普通属性和原型对象所指向的属性一样吗
    2018-04-13 15:55:45
  • 提问者 慕粉3125272 #2
    原来如此!谢啦
    2018-04-13 15:58:05
  • 提问者 慕粉3125272 #3
    2. 将构造函数的作用域赋给新对象 是包括函数的原型对象吗?如果此函数中既有原型对象又有普通的this.name=name这样的属性,我该咋赋值作用域,是全部赋值吗
    2018-04-13 16:06:03
小于飞飞 2018-04-13 15:03:20

你好,不清楚后面执行的代码,如果 是 person1.name,注意 new person() 实例化对象 person1 ,继承相应的属性等,这时 this指向 person1,希望对你有帮助,加油!

  • 提问者 慕粉3125272 #1
    我觉得从实质来讲,this永远不会指向person1,this永远只会指向person,只不过最后构造函数内部执行完毕后,person1因为是person实例化的一个对象,那么就会有一个constuctor指针指向被改变的函数,也就相当于继承了属性和方法
    2018-04-13 15:41:07
  • 小于飞飞 回复 提问者 慕粉3125272 #2
    看上面的回复。
    2018-04-13 15:50:43
  • 提问者 慕粉3125272 #3
    老师我觉得继承属性只是相对于原型链来讲的,普通的属性于方法不能从父对象那里继承,只是赋值
    2018-04-13 17:12:48
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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