36 Matching Annotations
  1. Oct 2023
    1. Por exemplo, ao usar métodos como Array.prototype.map()o que retorna o construtor padrão, você deseja que esses métodos retornem um Arrayobjeto pai, em vez do MyArrayobjeto. O Symbol.speciessímbolo permite
    2. Você pode querer retornar Arrayobjetos em sua classe de array derivada MyArray. O padrão
    3. Qualquer valor passado
    4. O Object()construtor faz casos especiais do cenário de subclasse. Se for chamado implicitamente via super(), ele sempre
    5. A única diferença de não escrever extendsnada é que o próprio construtor

      No entanto

    6. Subclasses abstratas ou mix-ins são modelos para classes. Uma classe só pode ter

      Portanto

      A funcionalidade

    7. Uma função com uma superclasse como entrada e uma subclasse estendendo essa superclasse como saída pode
    8. A herança é um relacionamento de acoplamento muito forte na programação orientada a objetos. Isso significa
    9. Podemos contornar isso usando um sinalizador privado para indicar se a instância está sendo construída. No entanto, um problema mais significativo com esse projeto é que ele quebra

      Que afirma

    10. A herança muitas vezes leva ao problema do círculo-elipse , porque nenhum tipo

      Em geral

    11. Composição significa que uma classe
    12. Nesse caso, a ReadOnlyMapclasse não é uma subclasse de Map, mas ainda implementa a maioria dos mesmos métodos. Isso significa mais duplicação de código, mas também significa que a ReadOnlyMapclasse não está fortemente acoplada à Mapclasse e não é facilmente interrompida
    13. Por exemplo, se a Mapclasse adicionar um emplace()método que não chama set(), isso fará com que a ReadOnlyMapclasse não seja mais somente leitura, a menos
    14. Todos os objetos JavaScript herdam
    15. As classes não podem estender objetos regulares (não construíveis). Se você deseja herdar de um objeto regular
    16. Em vez disso, você precisa retornar
    17. No entanto, devido a decisões incertas sobre se super()deve ser chamado dentro do construtor, não é possível
    18. extends nullfoi projetado para permitir
    19. Portanto, uma maneira melhor de estender os built-ins
    20. Qualquer adição de novos métodos na classe base também pode
    21. Se você deseja criar subclasses de built-ins enquanto alcança as expectativas acima, você precisa
    22. Novos métodos internos sempre constroem a classe base e chamam
    23. Esses problemas não são exclusivos de classes internas. Para suas próprias classes, você provavelmente terá que tomar as mesmas decisões. No entanto, para classes internas
    24. No entanto, as expectativas acima exigem esforços não triviais para serem implementadas adequadamente.
    25. Aqui estão algumas coisas que você pode esperar ao estender uma classe:
    26. Se o construtor da classe pai retornar um objeto, esse objeto será usado como

      Esse truque é chamado

    27. Enquanto a classe base pode retornar qualquer coisa de seu construtor, a classe derivada
    28. O thisvalor na extendsexpressão está
    29. O lado direito de extendsnão precisa ser um identificador. Você pode usar

      Isso geralmente é útil

    30. extendsdefine o protótipo para ambos ChildClasse ChildClass.prototype.
    31. A prototypepropriedade do ParentClassdeve
    32. As duas condições devem ser válidas — por exemplo, funções vinculadas e Proxypodem ser construídas, mas não têm uma prototypepropriedade, portanto
    33. A extendspalavra-chave pode ser usada para criar

      Bem como

    34. Qualquer construtor que possa ser chamado newe tenha a prototypepropriedade
    35. A extendspalavra-chave é usada em

      Para

  2. Oct 2022