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

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

으아악

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

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

으아악

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

怪我咯
怪我咯

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

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

在内存节约方面有差别

  • 第一种方式,prototye定义,所有后代都共享一个方法定义,内存中只有占一个空间,无论你创建了多少实例,所有实例的age方法都指向这个内存地址。

  • 第二种方式,在构造函数内定义,每创建一个实例,age方法的定义就会分配一个空间,属于该实例专用。实例创建多了,内存成比例增长。

综上,如果是共有的方法,请放到prototype中。

    習慣沉默

    第二种写法是构造函数模式,用是好用,但是这种方法的主要问题是每个方法都要在在每个实例上重新创建一遍。
    第一种原型模式方法就解决了这个问题,让所有对象实例共享它所包含的属性和方法。

      習慣沉默

      简单来说,功能一样,只不过大多数情况下会把方法写在原型中,把属性写在构造函数中,所以第一种方法更常用

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