English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Nos capítulos anteriores, aprendemos como criar objetos em JavaScript.
Os exemplos dos primeiros capítulos são limitados. Eles apenas criam um único objeto.
Às vezes, precisamos de um “modelo” para criar muitos objetos do mesmo tipo (exemplo).
Criar "modelos" é usar}}Construtor de objetos.
umConstrutor de objetosÉ fácil criar múltiplos objetos (exemplos) com as mesmas propriedades e métodos.
No exemplo a seguir, function User() é um construtor de objeto:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; }
Para criar objetos do mesmo tipo usando a chamada do construtor com a palavra-chave new:
var Seagull = new User("Seagull", "Anna", 22, "New Delhi"); var tarush = new User("Tarush", "Balodhi", 34, "Bihar");Teste e veja‹/›
Como você pode ver, podemos rapidamente construir muitos objetos diferentes do tipo User, usando diferentes argumentos na chamada do construtor User. Isso é completamente idêntico ao padrão usado pelo JavaScript em seus construtores integrados (como Array() e Date()).
JavaScript tem uma palavra-chave especial chamada this, que você pode usar em métodos para se referir ao objeto atual.
Quando this é usado no objeto, seu valor é o próprio objeto.
No construtor, this não tem valor. Ele substitui o novo objeto. Quando um novo objeto é criado, o valor de this será o novo objeto.
Para adicionar novas propriedades a um objeto, você pode usar o operador de atribuição (=) para atribuir um novo valor à propriedade.
Seagull.weapon = "Sword";Teste e veja‹/›
Atenção:Esta propriedade será adicionada ao Seagull. Não o faça. (Não se aplica a nenhum outro objeto User).
Para adicionar novos métodos a um objeto, você pode usar o operador de atribuição (=) para atribuir uma nova função à propriedade.
Seagull.greet = function() { return "Hello World"; };Teste e veja‹/›
Atenção:Este método será adicionado ao Seagull (não aponta para nenhum outro objeto User).
Não podemos adicionar novas propriedades ao construtor da mesma forma que adicionamos novas propriedades a um objeto existente:
User.weapon = "Sword";Teste e veja‹/›
Para adicionar novas propriedades a um construtor, deve-se adicioná-las ao construtor:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; this.weapon = "Sword"; }Teste e veja‹/›
Às vezes, gostaríamos de adicionar novas propriedades a um construtor mais tarde, que será compartilhado entre todos os objetos (exemplos). A resposta éObject prototype.
O construtor também pode definir métodos.
NósNão pode ser comoDa mesma forma que se adiciona um novo método a um objeto existente, adiciona-se um novo método ao construtor.
Adicionar métodos a um objeto deve ser feito dentro do construtor.
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; this.fullName = function() { return this.firstName + " " + this.lastName; }; }Teste e veja‹/›
Sometimes we want to add new methods to the constructor later, which will be shared among all objects (examples). The answer isObject prototype.
JavaScript has the following built-in constructors for native objects:
let x1 = new String(); //A new String object. let x2 = new Number(); //A new number object. let x3 = new Boolean(); //A new boolean object. let x4 = new Object(); //A new Object object. let x5 = new Array(); //A new Array object. let x6 = new RegExp(); //A new RegExp object. let x7 = new Date(); //A new date object. let x8 = new Function(); //A new function object.Teste e veja‹/›
As you can see above, JavaScript has primitive data types with objects such as String, Number, and Boolean.
We have no reason to create complex objects. Because primitive values are much faster.
Always consider numbers, strings, or booleans as primitive values. Do not treat them as objects.
Declaring these types as objects will slow down execution and produce unexpected results.
var str1 = "New Delhi"; var str2 = new String("New Delhi"); document.write(str1 === str2); // returns an error because str1and str2With different typesTeste e veja‹/›
Cannot compare objects:
var str1 = new String("New Delhi"); var str2 = new String("New Delhi"); document.write(str1 == str2); // returns an error because str1and str2With different types document.write(str1 === str2); // returns an error because str1and str2With different typesTeste e veja‹/›
You can also do this:
Use {} instead of new Object()
Use "" instead of new String()
Use 0 instead of new Number()
Use false instead of new Boolean()
Use [] instead of new Array()
Use/();/instead of new RegExp()
Use function (){} instead of new Function()
let x1 ={}; let x2 ""; let x3 0; let x4 false; let x5 []; let x6 = /();/; let x7 function(){};Teste e veja‹/›
Normalmente, as strings do JavaScript são valores primitivos criados por litterais: var city = "New Delhi";.
Mas também pode usar a palavra-chave new para definir strings como objetos: var city = new String("New Delhi");.
Em " Strings JS Em um capítulo, entenda por que não deve criar strings como objetos.
Normalmente, os números do JavaScript são valores primitivos criados por litterais: var num = 50);.
Mas também pode usar a palavra-chave new para definir números como objetos: var num = new Number("0");.50);.
Em " Números JS Em um capítulo, entenda por que não deve criar números como objetos.
Normalmente, os valores booleanos do JavaScript são valores primitivos criados por litterais: var x = false;.
Mas também pode usar a palavra-chave new para definir booleanos como objetos: var x = new Boolean(false);.
Em " Booleanos JS Em um capítulo, entenda por que não deve criar valores booleanos como objetos.