>  Q&A  >  본문

javascript - 또 ​​프로토타입 문제인가요?

다음 두 가지 글쓰기 방식의 본질적인 차이점이 무엇인지 모르겠습니다.

으아악

위 작성 방법은 프로토타입을 사용하여 인스턴스화된 객체가 상위 클래스의 함수를 호출할 수 있도록 합니다.

다음 방법은 프로토타입을 통과하지 못했지만 사용법은 완전히 동일합니다.

으아악

그렇다면 두 제품은 어떤 면에서 비슷할까요? 조언해주세요, 감사합니다!

怪我咯怪我咯2684일 전488

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

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:32:56

    메모리 절약에 차이가 있습니다

    • 첫 번째 방법인 프로토타입 정의에서는 모든 하위 항목이 메모리에서 한 공간만 차지하는 메서드 정의를 공유합니다. 인스턴스 수에 관계없이 모든 인스턴스의 age 메서드는 이 메모리 주소를 가리킵니다.

    • 두 번째 메소드는 인스턴스가 생성될 때마다 생성자에 정의되어 있으며 age 메소드의 정의는 인스턴스 전용 공간을 할당합니다. 더 많은 인스턴스가 생성될수록 메모리는 비례적으로 증가합니다.

    요약하자면 일반적인 방법이라면 프로토타입에 넣어주세요.

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:32:56

    두 번째 작성 방법은 생성자 패턴으로 사용하기 쉽지만 이 방법의 주요 문제점은 각 인스턴스에서 각 메서드를 다시 생성해야 한다는 것입니다.
    첫 번째 프로토타입 패턴 접근 방식은 모든 객체 인스턴스가 포함된 속성과 메서드를 공유하도록 하여 이 문제를 해결합니다.

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:32:56

    간단히 말하면 함수는 동일하지만 대부분의 경우 메소드는 프로토타입에 작성되고 속성은 생성자에 작성되므로 첫 번째 메소드가 더 일반적으로 사용됩니다

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