찾다

 >  Q&A  >  본문

javascript - 프로토타입 체인에 관한 질문

으아악

1.my.toString()이 호출될 때 JavaScript 엔진의 실행 경로는 무엇입니까?

PHP中文网PHP中文网2745일 전726

모든 응답(3)나는 대답할 것이다

  • 滿天的星座

    滿天的星座2017-06-14 10:55:03

    으아악

    [1]. Triangle 인스턴스 객체를 생성합니다.

    으아악

    [2] Triangle 인스턴스 객체 my에서 getArea 메소드를 호출합니다.[3] Triangle 인스턴스 객체 my에서 toString 메소드를 호출하고, 프로토타입 체인을 따라 TwoDShape 인스턴스를 찾습니다. 객체가 아직 존재하지 않으면 Shape 인스턴스로 이동하여 객체를 찾으세요.
    이번 개체는 Triangle 인스턴스 개체 my이고, 해당 개체의 name 속성 값은 Triangle이며, 출력은
    입니다.

    회신하다
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-14 10:55:03

    1: 먼저 유형과 인스턴스 사이의 관계를 이해하세요. Shape는 유형(추상)이고 var shape = new Shap(); 질문은 너무 모호합니다. var shape = new Shap(); 그리고 var sh = Shape()의 생성자 사이의 관계는 무엇입니까 => Shape의 생성자는 Shape.prototype.constructor입니다. (shape와 sh는 어떻게 관련될 수 있습니까~)
    3: 직접 상속하지 않는 이유는 무엇입니까? 이렇게 디자인되었습니다

    회신하다
    0
  • 代言

    代言2017-06-14 10:55:03

    모두 분해해보면 알 수 있습니다. 먼저 new의 작동 논리를 살펴보세요. TwoDShape.prototype = new Shape();세 가지 작업을 수행합니다. 으아악

    같은 이유

    으아악 으아악

    실행시

    my.toString()的时候从my自身成员开始找toString,没有就沿着__proto__往上找,最终在my.__proto__.__proto__(也就是TwoDShape.prototype)里找到了toString

    회신하다
    0
  • 취소회신하다