<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gustavo Henrique</title>
    <description>The latest articles on DEV Community by Gustavo Henrique (@gushenriq).</description>
    <link>https://dev.to/gushenriq</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2398817%2F2037bc7c-6313-4b44-9305-736046b8ef9c.png</url>
      <title>DEV Community: Gustavo Henrique</title>
      <link>https://dev.to/gushenriq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gushenriq"/>
    <language>en</language>
    <item>
      <title>Objetos em JavaScript</title>
      <dc:creator>Gustavo Henrique</dc:creator>
      <pubDate>Sat, 16 Nov 2024 20:06:46 +0000</pubDate>
      <link>https://dev.to/gushenriq/objetos-em-javascript-22ea</link>
      <guid>https://dev.to/gushenriq/objetos-em-javascript-22ea</guid>
      <description>&lt;p&gt;Estou começando uma série de posts sobre conceitos de JavaScript, e este é apenas o início. Neste primeiro post, será explorarado o conceito básico de objetos, que é essencial para entender como funciona a estrutura de dados em JavaScript.&lt;/p&gt;

&lt;p&gt;Fique ligado para os próximos posts, que trarão a continuidade desse artigo e vários outros assuntos.&lt;/p&gt;




&lt;h1&gt;
  
  
  Oque é um objeto?
&lt;/h1&gt;

&lt;p&gt;o mundo real, objetos são entidades (reais ou abstratas). Por exemplo: lápis, carro, caderno. Cada um desses objetos possui propriedades específicas. Por exemplo: um carro da cor azul, um lápis da cor vermelha ou um caderno de tamanho grande.&lt;/p&gt;

&lt;p&gt;Em JavaScript, objetos são entidades independentes que colecionam propriedades. As propriedades são associações entre um nome e um valor, ou seja, informações que descrevem o objeto.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;carro&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;cor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;amarelo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;tamanho&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;grande&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neste exemplo, cor e tamanho são propriedades do objeto carro, e cada uma delas tem um valor associado.&lt;/p&gt;

&lt;h1&gt;
  
  
  Criando Objetos
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Sintaxe literal
&lt;/h2&gt;

&lt;p&gt;Objetos literais são criados de forma simples e direta, onde os valores já são definidos manualmente. Essa sintaxe é ideal quando você tem um conjunto fixo de propriedades para o objeto.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pessoa&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;João&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;rua&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Rua Erva Daninha&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse tipo de objeto é útil quando as propriedades não mudam com frequência ou quando você precisa criar um objeto rapidamente com valores fixos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Funções Construtoras
&lt;/h2&gt;

&lt;p&gt;Funções construtoras são usadas para criar objetos de maneira dinâmica, especialmente quando você precisa de vários objetos semelhantes. Ao usar a palavra-chave &lt;code&gt;new&lt;/code&gt;, é criado um novo objeto que referencia a função construtora.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;NomeDoConstrutor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;parâmetros&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;propriedade1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;valor1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;propriedade2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;valor2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;método&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Código do método&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;variavel1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;NomeDoConstrutor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;parâmetros&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;variavel2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;NomeDoConstrutor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;parâmetros&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como um exemplo mais convencional e menos acadêmico:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Pessoa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;cumprimentar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, meu nome é &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pessoa1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Pessoa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;João&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pessoa2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Pessoa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Maria&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;pessoa1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cumprimentar&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Olá, meu nome é João&lt;/span&gt;
&lt;span class="nx"&gt;pessoa2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cumprimentar&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Olá, meu nome é Maria&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nesse caso, a saída será "Carimbada" com os valores atribuidos pelas váriaveis pessoa1 e pessoa2 no modelo estipulado pela function Pessoa.&lt;/p&gt;

&lt;h4&gt;
  
  
  Uso da palavra This
&lt;/h4&gt;

&lt;p&gt;Dentro de um construtor, usamos a palavra-chave this para se referir ao objeto que está sendo criado. O this permite que você defina propriedades e métodos dinâmicos para o objeto.&lt;/p&gt;

&lt;p&gt;Por exemplo, no código acima, this.nome e this.idade definem as propriedades do objeto, e o método cumprimentar é uma função associada ao objeto.&lt;/p&gt;

&lt;h4&gt;
  
  
  Herança em construtores
&lt;/h4&gt;

&lt;p&gt;A herança em JavaScript funciona através de protótipos. Em vez de criar um objeto diretamente a partir de outro, você cria uma hierarquia onde um objeto pode herdar propriedades e métodos de outro. Isso é feito usando os métodos &lt;code&gt;call&lt;/code&gt; ou &lt;code&gt;apply&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;pessoa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;estudante&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
  &lt;span class="nx"&gt;pessoa&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;idade&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;persona1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;estudante&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;antonio&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;persona1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// antonio&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;persona1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// 18&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h5&gt;
  
  
  Como funciona a Herança?
&lt;/h5&gt;

&lt;p&gt;Quando usamos Pessoa.call(this, nome), estamos chamando o construtor Pessoa e passando o contexto do objeto Estudante. Isso faz com que o objeto estudante1 herde a propriedade nome de Pessoa e também tenha a propriedade idade, que é exclusiva da função Estudante.&lt;/p&gt;

&lt;p&gt;Funções construtores são mais usados quado se vê a nescessidade da criação de vários objetos com muitas propriedades e métodos com valores variáveis. Nesse caso, é melhor o uso de um objeto construtor como um "carimbo" do que escrever vários objetos manualmente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Objetos construtores
&lt;/h2&gt;

&lt;p&gt;Objetos criados usando funções construtoras são instâncias geradas pelo operador &lt;code&gt;new&lt;/code&gt;. Cada instância possui suas próprias propriedades, mas compartilha métodos definidos no &lt;code&gt;prototype&lt;/code&gt; da função construtora.&lt;/p&gt;

&lt;p&gt;Isso significa que, se você criar vários objetos a partir de uma função construtora, eles terão os mesmos métodos, mas valores diferentes para suas propriedades.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pessoa1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Pessoa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;João&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pessoa2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Pessoa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Maria&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Nesse caso, o operador new cria um novo objeto, vinculando o contexto (this) à função construtora&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Para métodos compartilhados, é mais eficiente adicionalos o prototype da função construtora. Isso evita duplicação em memória.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Animal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tipo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tipo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tipo&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;Animal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;falar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Este é um &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tipo&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;animal1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Animal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Cachorro&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;animal2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Animal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Gato&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;animal1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;falar&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Este é um Cachorro&lt;/span&gt;
&lt;span class="nx"&gt;animal2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;falar&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Este é um Gato&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao definir métodos no &lt;code&gt;prototype&lt;/code&gt; de uma função construtora, evitamos duplicação de código. Em vez de cada objeto ter uma cópia do método, todos compartilham o mesmo método, economizando memória.&lt;/p&gt;

&lt;p&gt;O operador &lt;code&gt;new&lt;/code&gt; cria um novo objeto e vincula o contexto (&lt;code&gt;this&lt;/code&gt;) à função construtora.&lt;/p&gt;

&lt;p&gt;Para métodos compartilhados, é mais eficiente adicioná-los ao &lt;code&gt;prototype&lt;/code&gt; da função construtora, evitando duplicação em memória.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Fundamentos Em Redes de Computadores - A Rede</title>
      <dc:creator>Gustavo Henrique</dc:creator>
      <pubDate>Sun, 10 Nov 2024 13:15:51 +0000</pubDate>
      <link>https://dev.to/gushenriq/fundamentos-em-redes-de-computadores-a-rede-3hlf</link>
      <guid>https://dev.to/gushenriq/fundamentos-em-redes-de-computadores-a-rede-3hlf</guid>
      <description>&lt;h1&gt;
  
  
  Fundamentos Em Redes de Computadores
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Nos dias de hoje, as redes de computadores são essenciais para o nosso cotidiano, mas isso nem sempre foi assim. Após a Segunda Guerra Mundial, a necessidade de comunicação se intensificou, o que impulsionou o desenvolvimento dessas redes. Mas, afinal, o que são redes de computadores e por que elas são tão importantes no mundo moderno?&lt;/p&gt;

&lt;h2&gt;
  
  
  Oque é a rede?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Host&lt;/strong&gt; é qualquer dispositivo, como um computador ou máquina, que está conectado a uma rede e pode fornecer recursos para outros dispositivos ou usuários dentro dela. A interação entre múltiplos hosts forma uma &lt;strong&gt;rede&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rede&lt;/strong&gt; é a conexão entre diversos hosts, permitindo a troca de informações entre eles. Para isso, o hardware (parte física) e o software (parte lógica) trabalham juntos, possibilitando a comunicação. Imagine uma rede de pesca: os pontos interligados entre si são como os dispositivos que trocam dados uns com os outros.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fencrypted-tbn0.gstatic.com%2Fimages%3Fq%3Dtbn%3AANd9GcTAOjPySBvFBV5zuR2kbmXxHyXMax4R7KvQGQ%26s" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fencrypted-tbn0.gstatic.com%2Fimages%3Fq%3Dtbn%3AANd9GcTAOjPySBvFBV5zuR2kbmXxHyXMax4R7KvQGQ%26s" alt="Demonstração de uma rede" width="229" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Critérios de rede
&lt;/h3&gt;

&lt;p&gt;Para que uma rede seja eficiente e segura, é preciso observar alguns critérios importantes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Desempenho&lt;/strong&gt;: Refere-se ao tempo necessário para uma mensagem viajar pela rede, incluindo fatores como largura de banda e latência.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Capacidade de Hardware&lt;/strong&gt;: A infraestrutura física, como roteadores e switches, afeta diretamente o desempenho e a escalabilidade da rede.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avaliação de Vazão (Throughput) e Atraso (Delay&lt;/strong&gt;): Throughput mede a quantidade de dados que pode ser transmitida, enquanto delay indica o tempo de espera para enviar e receber dados. Juntos, eles avaliam a qualidade da rede.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Confiabilidade&lt;/strong&gt;: Avalia a estabilidade da rede, a frequência e duração de falhas e como a rede lida com esses problemas, garantindo a continuidade do serviço.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Segurança&lt;/strong&gt;: Refere-se à proteção contra acessos não autorizados, garantindo a integridade, confidencialidade e disponibilidade das informações.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tipos de conexão
&lt;/h3&gt;

&lt;p&gt;As redes podem se conectar de duas formas principais:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ponto a Ponto&lt;/strong&gt;: Aqui, existe um link dedicado entre dois dispositivos. Esse tipo de conexão permite que os dois dispositivos se comuniquem diretamente, sem interferências externas. Imagine dois computadores conectados entre si, com dados fluindo apenas entre eles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiponto&lt;/strong&gt;: Nesse tipo de conexão, vários dispositivos compartilham o mesmo link. Um exemplo é o roteador Wi-Fi, que conecta diversos dispositivos à rede e permite que todos usem o mesmo canal de comunicação.&lt;/p&gt;

&lt;h3&gt;
  
  
  Categorias de redes pela sua abrangência
&lt;/h3&gt;

&lt;p&gt;Uma rede pode ser categorizada de acordo com sua abrangência. Atualmente, existem quatro formas principais de classificação: PAN, LAN, MAN e WAN.&lt;/p&gt;

&lt;h4&gt;
  
  
  Personal Area Network (PAN)
&lt;/h4&gt;

&lt;p&gt;É uma rede privada de curto alcance, geralmente com até 1 metro. Ela costuma usar uma conexão ponto a ponto. Um exemplo disso é o Bluetooth, que permite a comunicação entre dispositivos próximos, como fones de ouvido e smartphones.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fcfox5whlrcxey8cvvs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fcfox5whlrcxey8cvvs.jpg" alt="Image description" width="639" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Local Area Network (LAN)
&lt;/h4&gt;

&lt;p&gt;Uma LAN é uma rede privada de médio alcance, geralmente entre 10 metros e 1 km. Nela, diversos dispositivos podem estar conectados, seja por cabo ou sem fio. A LAN é limitada a ambientes como casas, prédios ou empresas. Um exemplo comum é a rede Wi-Fi de uma residência, que conecta vários dispositivos em uma área restrita.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmomz734g6knwlmx0aubt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmomz734g6knwlmx0aubt.png" alt="Rede LAN" width="800" height="748"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Metropolitan Area Network (MAN)
&lt;/h4&gt;

&lt;p&gt;A MAN tem um alcance maior, abrangendo uma área de até 1000 km, como uma cidade ou região metropolitana. Ela é ideal para empresas ou clientes que precisam de alta conectividade em distâncias maiores, sem a necessidade de cobertura global. Exemplos incluem serviços de telefonia e canais de TV a cabo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcc7gwoygqq5xdxwuqqj0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcc7gwoygqq5xdxwuqqj0.png" alt="Rede WAN" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Wide Area Network (WAN)
&lt;/h4&gt;

&lt;p&gt;A WAN é a rede que conecta grandes distâncias, como países ou até continentes. A maior WAN de todas é a internet, que conecta milhões de redes ao redor do mundo e possibilita a troca de dados em uma escala global.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnb4ptw50i3z1zfpzqvl7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnb4ptw50i3z1zfpzqvl7.png" alt="Image description" width="467" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusão
&lt;/h3&gt;

&lt;p&gt;Exploramos aqui os conceitos essenciais para entender como as redes de computadores funcionam, como o desempenho e os tipos de conexões que elas utilizam. À medida que a tecnologia avança, as redes continuam a evoluir, tornando-se mais rápidas, seguras e integradas, conectando ainda mais o mundo.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
