javascript - 또 ​​프로토타입 문제인가요?
怪我咯
怪我咯 2017-05-19 10:30:56
0
3
483

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

으아악

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

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

으아악

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

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(3)
过去多啦不再A梦

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

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

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

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

習慣沉默

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

習慣沉默

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!