Object e Object Constructors em JavaScript?
No mundo vivo da programação orientada a objectos já sabemos a importância das classes e objectos mas ao contrário de outras linguagens de programação, o JavaScript não tem as classes tradicionais como vistas em outras linguagens. Mas o JavaScript tem objetos e construtores que funcionam principalmente da mesma forma para realizar o mesmo tipo de operações.
- Construtores são funções gerais do JavaScript que são usadas com a “nova” palavra-chave. Construtores são de dois tipos em JavaScript i.e. construtores embutidos(array e objeto) e construtores personalizados(definem propriedades e métodos para objetos específicos).
- Construtores podem ser úteis quando precisamos de uma maneira de criar um objeto “tipo” que pode ser usado várias vezes sem ter que redefinir o objeto toda vez e isso pode ser conseguido usando a função Construtor de Objetos. É uma convenção para capitalizar o nome dos construtores para distingui-los das funções regulares.
Por exemplo, considere o seguinte código:
function Automobile(color) { this.color=color;}var vehicle1 = new Automobile ("red");
A função “Automobile()” é um construtor de objetos, e suas propriedades e métodos i.e. “color” é declarado dentro dele prefixando-o com a palavra-chave “this”. Os objetos definidos usando um construtor de objetos são então feitos instantes usando a palavra-chave “new”.
Quando novo Automobile() é chamado, JavaScript faz duas coisas:
- Cria um novo objeto(instância) Automobile() e o atribui a uma variável.
- Define a propriedade construtor i.e. “cor” do objeto para Automobile.
Object.create() Método
Object.create() methord é usado para criar um novo objeto com o protótipo especificado de objeto e propriedades. O método Object.create() retorna um novo objeto com o protótipo especificado de objeto e propriedades.
Aplicações:
- Object.create() é usado para implementar a herança.
Sintax:
Object.create(prototype)
Parâmetros usados:
- protótipo :
É o objecto protótipo a partir do qual um novo objecto tem de ser criado.
- propertiesObject : É o parâmetro opcional. Ele especifica as propriedades enumeradas a serem adicionadas ao objeto recém-criado.
Return Value:
Object.create() retorna um novo objeto com o objeto protótipo e propriedades especificados.
Exemplos da função acima são fornecidos abaixo.
Exemplos:
Explicação: Neste exemplo, há duas funções “frutas” e “maçã”. Uma nova instância de maçã é criada que é denominada como “maçã” e foi especificada com o protótipo e propriedade de “frutas”, ou seja, this.name = ‘fruit 1’.
Explicação: Neste exemplo, existem duas funções “frutas” e “maçã”. Uma nova instância de maçã é criada que é nomeada como “maçã” e foi especificada com o protótipo e a propriedade de “frutas” ou seja, this.name = ‘fruit 1’ e this .season = ‘summer’.
Códigos para a função acima são fornecidos abaixo.
Código 1:
OUTPUT :
"fruit 1"
Código 2:
OUTPUT :
Excepções :
- Objecto.O método create( ) lança uma exceção TypeError se o parâmetro propertiesObject não for nulo.
- Object.create( ) lança uma exceção TypeError se o parâmetro propertiesObject for um objeto não primitivo.