问答详情
源自:8-1 概念与继承

为什么不是Student = Object.create(Person);和Student.prototype = Object.create(Person.prototype);有什么区别

为什么不是Student = Object.create(Person);和Student.prototype = Object.create(Person.prototype);有什么区别

提问者:momoyy123 2016-05-18 15:16

个回答

  • 飞过那座山
    2016-06-27 21:43:22
    已采纳

    你可以这样想,prototype属性里包含有两个属性,一个是构造器,一个是实例原型。当你继承类时,要从父类获取构造器和方法,然而这两个都是保存在prototype属性中。【有误指出】

  • chyco
    2020-04-24 17:56:23

    如果用了Student = Object.create(Person),Student 变成了一个实例对象不是一个构造函数了,

    还怎么进行下一步new Student()。

  • 尘随马
    2018-04-09 12:15:41

    谁能再给解释一下这个问题?

  • momoyy123
    2016-05-18 17:51:59

    不太明白,用create创建对象,Person不就是Student的原型了吗,为什么还要加prototype


  • lululumia
    2016-05-18 17:28:52

    Student=Object.create(Person)是一个赋值,表示新建一个Person对象赋值给Student,没有表现出基于原型链的继承。而后者表示Student的prototype指向原型为Person.prototype的空对象,这样才是基于原型链的继承,Student从Person处继承到了基类的属性和方法。