English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Os objetos são compostos por属性eMétodosO tipo de dados composto por conjuntos.
Como muitos outros linguagens de programação, pode-se comparar os objetos no JavaScript com os objetos da vida real.
No JavaScript, praticamente tudo é um objeto:
A string pode ser um objeto (se usar a palavra-chave new para definir)
O número pode ser um objeto (se usar a palavra-chave new para definir)
O valor booleano pode ser um objeto (se usar a palavra-chave new para definir)
A data sempre é um objeto
A matemática sempre é um objeto
O array sempre é um objeto
A expressão regular sempre é um objeto
函数永远是对象
Object就是对象
除原语外,所有JavaScript值都是对象。
原始值是没有属性或方法的值。
在JavaScript中,有5种原始类型:
string
number
boolean
null
undefined
JavaScript变量只能包含一个值。
var user = "oldtoolbag.com";Teste veja‹/›
对象也是变量,但是对象可以包含许多值。
可以将对象写为name:value对,并用冒号(:)分隔。
var user = {firstName: "维沙尔", lastName: "乔达里", age:22, location: "Nova Déli"};Teste veja‹/›
JavaScript对象是无序属性的集合。
属性是对象中名称和值之间的关联,并且可以包含任何数据类型。
属性通常是指对象的特征。
属性 | 属性值 |
---|---|
firstName | 维沙尔 |
lastName | 乔达里 |
age | 22 |
location | 新德里 |
您将在下一章中了解有关属性的更多信息。
方法是作为对象属性值的函数,因此是对象可以执行的任务。
方法存储在属性中作为函数定义.
属性 | 适当的价值 |
---|---|
firstName | 维沙尔 |
lastName | 乔达里 |
age | 22 |
location | 新德里 |
getName | function() {返回 this.firstName} + " " + this.lastName;} |
注意:方法是作为属性存储的函数。
JavaScript有许多预定义的对象。另外,您可以创建自己的对象。
有多种创建新对象的方法:
Os dois exemplos acima são completamente iguais. Não é necessário usar new Object().对象常量,它使用大括号:{}
Os dois exemplos acima são completamente iguais. Não é necessário usar new Object().对象构造函数,它使用new Object()
或者,您可以先创建一个Construtor ,然后示例化一个调用该函数的对象
Os dois exemplos acima são completamente iguais. Não é necessário usar new Object().对象常量是创建JavaScript对象的最简单方法。
Os dois exemplos acima são completamente iguais. Não é necessário usar new Object().对象常量,您可以在一个语句中定义和创建一个对象。
下面的示例创建一个具有四个属性的新JavaScript对象:
var user = {firstName: "维沙尔", lastName: "乔达里", age:22, location: "Nova Déli"};Teste veja‹/›
对象定义可以跨越多行:
var user = { firstName: "维沙尔", lastName: "乔达里", age: 22, location: "新德里" };Teste veja‹/›
Os dois exemplos acima são completamente iguais. Não é necessário usar new Object().对象构造函数这是创建JavaScript对象的另一种方法。
下面的示例创建一个具有四个属性的新JavaScript对象:
var user = new Object(); user.firstName = "维沙尔"; user.lastName = "乔达里"; user.age = 22 ;Teste veja‹/›
user.location = "Nova Déli";
Os dois exemplos acima são completamente iguais. Não é necessário usar new Object().UsandoObjeto literal
Usando construtor
Além disso, você pode criar um objeto em duas etapas:ConstrutorDefinição do tipo de objeto (usado maiúsculo no início do nome, conforme convencionado)
Exemplo de criação de objeto usando a palavra-chave new
O exemplo a seguir define o tipo de objeto através da escrita de um construtor:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; }
Agora podemos criar um objeto chamadouser1do objeto, conforme mostrado:
var user1 = new User("Vishal", "Jodari", 22, "Nova Déli");Teste veja‹/›
Vamos discutir isso mais à frente neste tutorialConstrutor.
Mutável é uma variável que pode ser alterada. No JavaScript, apenas objetos e arrays são mutáveis, não valores primitivos.
Objeto mutávelé um objeto cujo estado pode ser modificado após a criação.
ImutávelO objeto é um objeto cujo estado não pode ser alterado após a criação do objeto.
stringenúmeroéImutável. Vamos usar um exemplo para entender isso:
var immutableString = "Hello"; // No código acima, foi criado um novo objeto com um valor de string. immutableString = immutableString + "World"; // Agora, vamos anexar "World" ao valor existente.
Após anexar "immutableString" ao valor de string, ocorrerão os seguintes eventos:
O valor existente de "immutableString" é recuperado.
"World" é anexado ao valor existente de "immutableString".
Em seguida, o valor resultante é alocado para o novo bloco de memória.
Agora, o objeto "immutableString" aponta para o novo espaço de memória criado.
O espaço de memória criado anteriormente agora pode ser usado para coleta de lixo.
Os objetos são mutáveis: eles são endereçados por referência, não por valor.
Se o usuário for um objeto, a seguinte declaração não criará uma cópia do usuário:
var x = user; // Isso não criará uma cópia do usuário.
O objeto x não é uma cópia do usuário, é o usuário. x e usuário são o mesmo objeto.
Qualquer alteração em x também alterará user, porque x e user são o mesmo objeto.
var user = {firstName: "维沙尔", lastName: "乔达里", age:22, location: "Nova Déli"}; var x = user; x.location = "Goa";// Isso alterará simultaneamente x.location e user.locationTeste veja‹/›
No JavaScript, os objetos são tipos de referência. Mesmo que dois objetos diferentes tenham propriedades idênticas, eles nunca serão iguais.
// Dois variáveis, dois objetos diferentes com propriedades idênticas var fruit = {name: "apple"}; var fruitbear = {name: "apple"}; fruit == fruitbear; // Retornar false fruit === fruitbear; // Retornar falseTeste veja‹/›
Apenas comparar a referência do mesmo objeto com si mesmo resultará em true:
// Dois variáveis, um objeto var fruit = {name: "apple"}; var fruitbear = fruit; // Atribuição de referência do objeto fruit para fruitbear // Aqui fruit e fruitbear apontam para o mesmo objeto fruit == fruitbear; // Retornar true fruit === fruitbear; // Retornar trueTeste veja‹/›