JavaScript é uma linguagem dinâmica, você pode adicionar atributos aos objetos em tempo de execução ou pode excluir atributos para objetos.
A cópia do código é a seguinte:
<html>
<head>
<script type = "text/javascript">
/*
// 01. A primeira maneira de definir um objeto
var object = new Object ();
alerta (object.username);
//01.1 Adicionar nome de usuário do atributo
objeto ["nome de usuário"] = "liujianglong";
//object.username="liujl ";
alerta (object.username);
//01.2 Exclua o nome de usuário do atributo
excluir object.username; // o atributo de nome de usuário foi excluído do objeto Objeto
alerta (object.username);
*/
// 02. A segunda maneira de definir objetos - a maneira mais comum de definir objetos em JavaScript
var object = {nome: "zhangsan", idade: 10, sexo: "Fale"};
alerta (object.name);
alerta (object.age);
alerta (object.sex);
</script>
</head>
<Body>
</body>
</html>
Nome da propriedade: o nome do método também está ok. Porque a função em si é um objeto
JavaScript Matriz de classificação
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head>
<script type = "text/javascript">
var array = [1,3,25];
////////////////////////////////////////Uver
var compare = function (num1, num2) {
var temp1 = parseint (num1);
var temp2 = parseint (num2);
if (temp1 <temp2) {
retornar -1;
} else if (temp1 == temp2) {
retornar 0;
}outro{
retornar 1;
}
}
//array.sort(compare) ;//01. O nome da função é uma referência de objeto
//////////////////////////////////////Uver
// 02. Função anônima method////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Array.sort (Função C (num1, num2) {
var temp1 = parseint (num1);
var temp2 = parseint (num2);
if (temp1 <temp2) {
retornar -1;
} else if (temp1 == temp2) {
retornar 0;
}outro{
retornar 1;
}
});
////////////////////////////////////////Uver
alerta (matriz);
</script>
</head>
<Body>
</body>
</html>
Várias maneiras de definir objetos em JavaScript (JavaScript não tem o conceito de classes, apenas objetos)
O primeiro método: expandir suas propriedades e métodos baseados em objetos existentes
A cópia do código é a seguinte:
<script type = "text/javascript">
// 01. Expandir suas propriedades e métodos baseados em objetos existentes
var object = new Object ();
object.UserName = "Zhangsan";
object.SayName = function (nome) {
this.UserName = nome;
alerta (this.username);
}
alerta (object.username);
object.SayName ("lisi");
alerta (object.username);
</script>
Este método tem limitações porque o JavaScript não possui o conceito de classe como Java. Se você escrever uma classe, o novo poderá obter um objeto com essas propriedades e métodos.
No momento, se você deseja ter o Object2, só poderá escrever outra cópia do código mencionado acima, o que não é muito bom.
O segundo método: método de fábrica
Semelhante aos métodos de fábrica estática em Java.
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head>
<script type = "text/javascript">
// Método de fábrica de objetos
var createObject = function () {
var object = new Object ();
object.UserName = "Zhangsan";
object.password = "123";
object.get = function () {
alerta (this.username+","+object.password);
}
objeto de retorno;
}
var obj1 = createObject ();
var obj2 = createObject ();
obj1.get ();
// Modifique a senha do objeto 2
obj2 ["senha"] = "123456";
obj2.get ();
</script>
</head>
<Body>
</body>
</html>
Existem desvantagens na criação de objetos no método acima (cada objeto tem um método GET, que desperdiça memória) e o método de fábrica aprimorado (todos os objetos compartilham um método GET):
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head>
<script type = "text/javascript">
// Obtenha o método compartilhado por todos os objetos
var get = function () {
alerta (this.username+","+this.password);
}
// Método de fábrica de objetos
var createObject = function (nome de usuário, senha) {
var object = new Object ();
object.UserName = Nome de usuário;
object.Password = senha;
object.get = get; // Nota: os suportes do método não são escritos aqui
objeto de retorno;
}
// Crie um objeto através do método de fábrica
var object1 = createObject ("zhangsan", "123");
var object2 = createObject ("lisi", "345");
// chamando o método get
object1.get ();
object2.get ();
</script>
</head>
<Body>
</body>
</html>
O terceiro método: definir um objeto pelo construtor
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head>
<script type = "text/javascript">
var get = function () {
alerta (this.username+","+this.password);
}
Pessoa de função (nome de usuário, senha) {
// Antes de executar a primeira linha de código, o mecanismo JS gerará um objeto para nós
this.UserName = Nome de usuário;
this.password = senha;
this.get = get;
// Aqui, há uma declaração de devolução oculta usada para retornar o objeto gerado anteriormente [isso é diferente do padrão de fábrica]
}
var pessoa = nova pessoa ("zhangsan", "123");
pessoa.get ();
</script>
</head>
<Body>
</body>
</html>
O quarto método: crie um objeto no método do protótipo
O protótipo é uma propriedade em um objeto, e todos os objetos de pessoa também podem ter o protótipo de propriedade.
Você pode adicionar algumas propriedades e métodos ao protótipo do objeto.
Desvantagens de simplesmente usar protótipos para criar objetos: ① Não pode passar os parâmetros, você só pode alterar o valor após a criação do objeto
② Erros de programa podem ocorrer
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head>
<script type = "text/javascript">
função pessoa () {
}
Pessoa.prototype.username = "zhangsan";
Pessoa.prototype.password = "123";
Person.prototype.getInfo = function () {
alerta (this.username+","+this.password);
}
Var Person1 = New Pessoa ();
var pessoa2 = new Person ();
pessoa1.username = "lisi";
Person1.getInfo ();
pessoa2.getinfo ();
</script>
</head>
<Body>
</body>
</html>
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head>
<script type = "text/javascript">
função pessoa () {
}
Pessoa.prototype.UserName = new Array ();
Pessoa.prototype.password = "123";
Person.prototype.getInfo = function () {
alerta (this.username+","+this.password);
}
Var Person1 = New Pessoa ();
var pessoa2 = new Person ();
PERSON.USERNAME.PUSH ("WANGLAOWU");
PERSON.USERNAME.PUSH ("WANGLAOWU2");
pessoa2.password = "456";
Person1.getInfo ();
pessoa2.getinfo ();
</script>
</head>
<Body>
</body>
</html>
Ao simplesmente definir um objeto usando o protótipo, você não pode mais atribuir valores iniciais aos atributos no construtor e só pode alterar os valores do atributo após a geração do objeto.
O quinto método: use o protótipo + construtor para definir o objeto -------------------
As propriedades entre objetos não interferem entre si
Compartilhe o mesmo método entre objetos
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head>
<script type = "text/javascript">
// Use o método protótipo + construtor para definir o objeto
função pessoa () {
// Definição de atributo no construtor
this.UserName = new Array ();
this.password = "123";
}
// O método é definido no protótipo
Person.prototype.getInfo = function () {
alerta (this.username+","+this.password);
}
var p1 = new Person ();
var p2 = nova pessoa ();
p1.username.push ("zhangsan");
p2.username.push ("lisi");
p1.getinfo ();
p2.getInfo ();
</script>
</head>
<Body>
</body>
</html>
O sexto método: método de protótipo dinâmico -------- Uso recomendado
No construtor, todos os objetos compartilham um método através da quantidade do sinalizador e cada objeto tem seus próprios atributos.
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head>
<script type = "text/javascript">
var pessoa = função (nome de usuário, senha) {
this.UserName = Nome de usuário;
this.password = senha;
if (typeof pessoa.flag == "indefinido") {
alerta ("invocou");
Person.prototype.getInfo = function () {
alerta (this.username+","+this.password);
}
Pessoa.flag = true;
}
}
var p1 = nova pessoa ("zhangsan", "123");
var p2 = nova pessoa ("lisi", "456");
p1.getinfo ();
p2.getInfo ();
</script>
</head>
<Body>
</body>
</html>