Javascript-프로토 타입 메서드 내부에서 자식 메서드 호출

빅 캣 오릭

재정의 된 경우 프로토 타입 메서드에서 일반 메서드를 호출 할 수 있습니까? 주어진 예제에서 첫 번째 eat () 메서드는 Animal 함수의 본문에서 호출됩니다. 이것이 요구 사항입니다.

Animal = function(){
    this.eat();
};

Animal.prototype.eat = function() {
    console.log("All animals eat");
};

Bear = function(){
    Animal.call(this);
    this.goToSleep = function(){
        console.log("Bears go to sleep after they eat");
    }
};

Bear.prototype = Object.create(Animal.prototype);

Bear.prototype.eat = function() {
    console.log("Bears eat honey");
    this.goToSleep(); //returns 'undefined is not a function'
    //How do I invoke this.goToSleep() ?
};

var winnie = new Bear();
션 비에이라

문제는 곰이 처음 호출 goToSleep될 때 메서드 가 없다는 것 eat입니다.

당신이 호출 할 때 Animal.call(this)당신의 Bear생성자는 다음 호출 eat-에서 발견되는 Bear.prototype및 호출. 그런 다음 eat호출을 시도 goToSleep하지만 goToSleep아직 추가하지 않은 인스턴스 메서드입니다 ( 아직 Animal.call도달 this.goToSleep = function()하지 않은 상태 임을 기억하십시오 ).

타당한 이유가 없다면 다음 goToSleep과 같이 프로토 타입 메서드가되어야합니다 eat.

Bear.prototype.goToSleep = function(){
  console.log("Bears go to sleep after they eat");
};

이것은 당신이 원하는대로 작동 합니다.

경우 또는 goToSleep (당신이 당신의 생성자에서 만든 일부 민간 상태에 액세스해야하기 때문에) 인스턴스 방법으로, 단순히 당신의 순서 전환 Animal.callthis.goToSleep라인 :

this.goToSleep = function() // etc.
Animal.call(this);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자바 메서드 프로토 타입

분류에서Dev

프로토 타입 메서드 재정의 및 원래 메서드 호출

분류에서Dev

프로토 타입 메서드가 호출되지 않음

분류에서Dev

Javascript의 상속-자식 메서드에서 부모 메서드 호출

분류에서Dev

프로토 타입 체인 : 여러 수준에서 "수퍼"메서드 호출

분류에서Dev

다른 개체의 메서드에서 개체의 프로토 타입 메서드 호출

분류에서Dev

상태를 유지하면서 프로토 타입 메서드 호출

분류에서Dev

JavaScript에서 해당 메서드 내부의 메서드 호출

분류에서Dev

자바 스크립트 : super를 사용하여 자식 프로토 타입 함수 내에서 부모 프로토 타입 함수 호출

분류에서Dev

JavaScript-자체 호출 함수로서의 프로토 타입 (IIFE)

분류에서Dev

메서드가 부모의 프로토 타입에 속하지 않을 때 자식에서 부모의 메서드를 호출하는 방법이 있습니까?

분류에서Dev

JS-프로토 타입을 사용하여 정적 메서드 호출

분류에서Dev

자바 스크립트 프로토 타입 메서드 확장

분류에서Dev

Promise의 then 메서드에 프로토 타입 메서드 전달

분류에서Dev

프로 시저 프로그래밍과 달리 객체 프로토 타입 메서드에 호출자가없는 이유

분류에서Dev

다른 프로토 타입 내에서 호출 가능한 프로토 타입 메서드를 어떻게 만들 수 있습니까?

분류에서Dev

다른 프로토 타입 메소드에서 자바 스크립트 프로토 타입 메소드 수신자 이름을 식별하는 방법

분류에서Dev

프로토 타입이나 새로 생성 된 인스턴스에서 생성자 메서드를 호출해야합니까?

분류에서Dev

자바 스크립트에서 프로토 타입 메서드 .push () 편집

분류에서Dev

프로토 타입 메서드를 JavaScript의 함수로 변경하는 한 줄

분류에서Dev

자바 : 한 메서드에서 다른 메서드로 사용자 입력 변수 호출

분류에서Dev

자바 : 한 메서드에서 다른 메서드로 사용자 입력 변수 호출

분류에서Dev

생성자를 메서드로 호출

분류에서Dev

메서드 내에서 JavaScript 프로토 타입에서 상속 된 메서드를 참조 할 수없는 이유

분류에서Dev

부모 메서드에서 파이썬 호출 자식 메서드

분류에서Dev

자식 생성자에서 부모 메서드 호출

분류에서Dev

JS OOP : 프로토 타입의 메서드와 생성자 함수의 메서드

분류에서Dev

.apply 메서드가 작동하는 방식 (클래스 및 프로토 타입)

분류에서Dev

자바 스크립트 프로토 타입 상속이 예상 된 메서드를 호출하지 않습니다.

Related 관련 기사

  1. 1

    자바 메서드 프로토 타입

  2. 2

    프로토 타입 메서드 재정의 및 원래 메서드 호출

  3. 3

    프로토 타입 메서드가 호출되지 않음

  4. 4

    Javascript의 상속-자식 메서드에서 부모 메서드 호출

  5. 5

    프로토 타입 체인 : 여러 수준에서 "수퍼"메서드 호출

  6. 6

    다른 개체의 메서드에서 개체의 프로토 타입 메서드 호출

  7. 7

    상태를 유지하면서 프로토 타입 메서드 호출

  8. 8

    JavaScript에서 해당 메서드 내부의 메서드 호출

  9. 9

    자바 스크립트 : super를 사용하여 자식 프로토 타입 함수 내에서 부모 프로토 타입 함수 호출

  10. 10

    JavaScript-자체 호출 함수로서의 프로토 타입 (IIFE)

  11. 11

    메서드가 부모의 프로토 타입에 속하지 않을 때 자식에서 부모의 메서드를 호출하는 방법이 있습니까?

  12. 12

    JS-프로토 타입을 사용하여 정적 메서드 호출

  13. 13

    자바 스크립트 프로토 타입 메서드 확장

  14. 14

    Promise의 then 메서드에 프로토 타입 메서드 전달

  15. 15

    프로 시저 프로그래밍과 달리 객체 프로토 타입 메서드에 호출자가없는 이유

  16. 16

    다른 프로토 타입 내에서 호출 가능한 프로토 타입 메서드를 어떻게 만들 수 있습니까?

  17. 17

    다른 프로토 타입 메소드에서 자바 스크립트 프로토 타입 메소드 수신자 이름을 식별하는 방법

  18. 18

    프로토 타입이나 새로 생성 된 인스턴스에서 생성자 메서드를 호출해야합니까?

  19. 19

    자바 스크립트에서 프로토 타입 메서드 .push () 편집

  20. 20

    프로토 타입 메서드를 JavaScript의 함수로 변경하는 한 줄

  21. 21

    자바 : 한 메서드에서 다른 메서드로 사용자 입력 변수 호출

  22. 22

    자바 : 한 메서드에서 다른 메서드로 사용자 입력 변수 호출

  23. 23

    생성자를 메서드로 호출

  24. 24

    메서드 내에서 JavaScript 프로토 타입에서 상속 된 메서드를 참조 할 수없는 이유

  25. 25

    부모 메서드에서 파이썬 호출 자식 메서드

  26. 26

    자식 생성자에서 부모 메서드 호출

  27. 27

    JS OOP : 프로토 타입의 메서드와 생성자 함수의 메서드

  28. 28

    .apply 메서드가 작동하는 방식 (클래스 및 프로토 타입)

  29. 29

    자바 스크립트 프로토 타입 상속이 예상 된 메서드를 호출하지 않습니다.

뜨겁다태그

보관