如何在Javascript中覆盖父母的方法?

黑宝

假设我们有一个对象Person,如下所示:

function Person(name){
            this.name = name;

            this.greeting = function(){
                alert("Hi I'm " + this.name);
            }
        }

和它的孩子

function Teacher(name, subject){
            Person.call(this, name); 
            this.subject = subject;
            Teacher.prototype = Object.create(Person.prototype);
        }

我试图重写greeting方法,如下所示:

Teacher.prototype.greeting = function(){                
                alert("Hello my name is " + this.name + " and I teach " + this.subject);

        }

teacher1.greeting()调用Person的方法而不是的方法Teacher,如您在此处看到的:

调用人的方法而不是老师的方法

  • 哪里错了?
Euroclydon37

更新后的答案:现在,我已经在家中并且在笔记本电脑上,我看到了该错误。您将教师原型放置在错误的位置。

因此,您需要这样做:

// Incorrect
function Teacher(first, last, age, gender, interest, subject) {
  Person.call(this, first, last, age, gender, interest);
  this.subject = subject;
  Teacher.prototype = Object.create(Person.prototype);
}

// Correct
function Teacher(first, last, age, gender, interest, subject) {
  Person.call(this, first, last, age, gender, interest);
  this.subject = subject;
}

Teacher.prototype = Object.create(Person.prototype);

因此,每次实例化的新实例时Teacher,都将使用覆盖它的原型Person因此,无论您将教师的原型设置为什么,它都会被覆盖。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在javascript中覆盖返回的嵌套方法?

来自分类Dev

如何在方法中覆盖Runnable?

来自分类Dev

如何在Ruby中覆盖实例方法

来自分类Dev

如何在Ruby / TK中成为父母

来自分类Dev

如何在Extjs中访问父母宽度?

来自分类Dev

覆盖在祖父母的构造函数中调用的祖父母的虚拟方法

来自分类Dev

如何在Swift中的协议扩展中覆盖实例方法?

来自分类Dev

如何在Swift中的协议扩展中覆盖实例方法?

来自分类Dev

如何在JavaScript中合并对象而不覆盖值

来自分类Dev

如何在JavaScript中覆盖窗口和未定义?

来自分类Dev

如何在JavaScript中覆盖绑定函数的'this'参数

来自分类Dev

如何在JavaScript中覆盖WebRTC的PeerConnection构造函数

来自分类Dev

如何在JavaScript中合并对象而不覆盖值

来自分类Dev

如何在JavaScript中覆盖window和undefined?

来自分类Dev

如何在JavaScript中覆盖绑定函数的'this'参数

来自分类Dev

如何在请求中覆盖.get()方法?

来自分类Dev

如何在python中覆盖方法默认参数?

来自分类Dev

如何在Java中覆盖ArrayList的toString方法?

来自分类Dev

如何在python中锁定方法(防止被覆盖)?

来自分类Dev

如何在Django中覆盖model.Manager.create()方法?

来自分类Dev

如何在Smalltalk中覆盖平等方法?

来自分类Dev

如何在Kotlin中覆盖HashMaps entrySet方法?

来自分类Dev

D:如何在扩展类中覆盖不变方法?

来自分类Dev

如何在F#中隐藏和覆盖继承的方法?

来自分类Dev

如何在Node中覆盖其他模块方法

来自分类Dev

如何在Smalltalk中覆盖平等方法?

来自分类Dev

如何在Android中禁用或覆盖oncreate方法

来自分类Dev

如何在活动中覆盖getView()方法扩展Listactivity

来自分类Dev

如何在请求中覆盖.get()方法?

Related 相关文章

  1. 1

    如何在javascript中覆盖返回的嵌套方法?

  2. 2

    如何在方法中覆盖Runnable?

  3. 3

    如何在Ruby中覆盖实例方法

  4. 4

    如何在Ruby / TK中成为父母

  5. 5

    如何在Extjs中访问父母宽度?

  6. 6

    覆盖在祖父母的构造函数中调用的祖父母的虚拟方法

  7. 7

    如何在Swift中的协议扩展中覆盖实例方法?

  8. 8

    如何在Swift中的协议扩展中覆盖实例方法?

  9. 9

    如何在JavaScript中合并对象而不覆盖值

  10. 10

    如何在JavaScript中覆盖窗口和未定义?

  11. 11

    如何在JavaScript中覆盖绑定函数的'this'参数

  12. 12

    如何在JavaScript中覆盖WebRTC的PeerConnection构造函数

  13. 13

    如何在JavaScript中合并对象而不覆盖值

  14. 14

    如何在JavaScript中覆盖window和undefined?

  15. 15

    如何在JavaScript中覆盖绑定函数的'this'参数

  16. 16

    如何在请求中覆盖.get()方法?

  17. 17

    如何在python中覆盖方法默认参数?

  18. 18

    如何在Java中覆盖ArrayList的toString方法?

  19. 19

    如何在python中锁定方法(防止被覆盖)?

  20. 20

    如何在Django中覆盖model.Manager.create()方法?

  21. 21

    如何在Smalltalk中覆盖平等方法?

  22. 22

    如何在Kotlin中覆盖HashMaps entrySet方法?

  23. 23

    D:如何在扩展类中覆盖不变方法?

  24. 24

    如何在F#中隐藏和覆盖继承的方法?

  25. 25

    如何在Node中覆盖其他模块方法

  26. 26

    如何在Smalltalk中覆盖平等方法?

  27. 27

    如何在Android中禁用或覆盖oncreate方法

  28. 28

    如何在活动中覆盖getView()方法扩展Listactivity

  29. 29

    如何在请求中覆盖.get()方法?

热门标签

归档