Javascript Object Part
1: Parte básica
1. Todas as variáveis no JavaScript são objetos, com duas exceções nulas e indefinidas.
2.jscript suporta quatro tipos de objetos: objetos internos, objetos gerados, objetos dados-host (todos os objetos BOM e DOM são objetos host.) E objetos ActiveX (componentes externos).
3. A Microsoft JScript fornece 11 objetos internos (ou "embutidos"). Eles são matriz, boolean, data, função, global, matemática, número, objeto, regexp, erro e string objetos.
4. Objetos são apenas dados especiais. Objetos têm propriedades e métodos. O JavaScript é um idioma orientado a objetos, mas o JavaScript não usa classes. O JavaScript é baseado em protótipo, não baseado em classe.
5. Atributo: é uma variável afiliada a um objeto específico. Método: é uma função que só pode ser chamada por um objeto específico.
6. Os objetos JScript são coleções de propriedades e métodos. Um método é uma função, que é um membro de um objeto. Um atributo é um valor ou um conjunto de valores (na forma de uma matriz ou objeto) que é um membro de um objeto.
7. Os objetos JavaScript são baseados nas funções do construtor. Ao usar as funções do construtor para criar um novo objeto, pode -se dizer que um novo objeto é instanciado. As propriedades são variáveis dentro da função do construtor.
Objetos instanciados usando funções do construtor:
gato = novo animal ();
8. O JavaScript é um idioma baseado em objetos e quase tudo o que você encontra é um objeto. No entanto, não é uma verdadeira linguagem de programação orientada a objetos (OOP) porque não há classe (classe) em sua sintaxe.
A cópia do código é a seguinte:
<script type = "text/javascript">
// Objeto é uma coleção de pares de nome/valor
Var navegador = {// Objeto está incluído em aparelhos encaracolados
Nome: "Firefox",
kernel: "Gecko"
};
</script>
A cópia do código é a seguinte:
// Acesse as propriedades do objeto através do ponto (.) Ou "[]"
navegador.name // "firefox"
navegador ["kernel"] // "lagartixa"
Objetos (Objct) são uma coleção de propriedades, cada propriedade consiste em "pares de nome/valor". O JS também define um objeto especial - uma matriz, que é um conjunto ordenado de valores numerados. JS também define um objeto especial - função, uma função é um objeto com código executável associado a ele. Ele executa o código chamando a função e retorna o resultado da operação.
Esclarecer o conceito:
"Baseado em objetos = orientado a objetos" no JS 4. Não há classe (classe) em JS, mas é preciso um novo nome chamado "Objeto de protótipo", então "class = prototype Object"
2: A diferença e a conexão entre as classes (protótipo objetos) e objetos (instâncias) ###
1. As classes (protótipos de objetos) são abstratos, conceituais, representando um tipo de coisa.
2. O objeto é concreto, prático e representa uma coisa específica.
3. Classe (Objeto Protótipo) é um modelo para instâncias de objetos, e as instâncias de objetos são indivíduos da classe.
Um equívoco comum é que o valor literal de um número não é um objeto. Isso ocorre por causa de um bug no analisador JavaScript que tenta analisar o operador de ponto como parte do valor da face numérica do ponto flutuante.
Existem muitas soluções alternativas para fazer com que o valor literal de um número pareça um objeto.
2..ToString (); // O segundo ponto pode ser analisado normalmente
2.ToString (); // preste atenção aos espaços antes do ponto
(2) .ToString (); // 2 é calculado primeiro
Excluir atributos
A única maneira de excluir uma propriedade é usar o operador de exclusão; Definir a propriedade como indefinido ou nulo não exclui realmente a propriedade, mas simplesmente remove a associação entre a propriedade e o valor.
Três principais características do JavaScript Orientado a objetos
Encapsulamento: nenhuma implementação interna é considerada, apenas o uso funcional é considerado
Herança: herdar um novo objeto de um objeto existente
Polimorfismo: o chamado polimorfismo refere-se a vários estados que se referem em diferentes situações.
1. Embalagem
O encapsulamento significa agrupar os pontos em comum (incluindo atributos e comportamentos) de coisas pertencentes à mesma categoria em uma classe para facilitar o uso. Por exemplo, a coisa humana pode ser encapsulada das seguintes maneiras:
pessoas{
Idade (atributo 1)
Altura (atributo 2)
Gênero (atributo três)
Faça as coisas (um dos comportamentos)
Caminhando (Comportamento 2)
Falando (Ato 3)
}
Benefícios do encapsulamento:
O encapsulamento protege a integridade dos dados internos;
O encapsulamento facilita a refatoração de objetos;
Enfraquecer o acoplamento entre os módulos e melhorar a reutilização dos objetos;
Ajuda a evitar conflitos no espaço para nome;
Veja o seguinte exemplo:
A cópia do código é a seguinte:
<script type = "text/javascript">
var menino = {}; // Crie um objeto vazio
boy.name = "xiao ming"; // atribui valores de acordo com as propriedades do objeto de protótipo
menino.age = 12;
var menina = {};
Girl.Name = "Xiaohong";
garota.age = 10;
</script>
Este é o encapsulamento mais simples, encapsulando dois atributos em um objeto. No entanto, este método de escrita tem duas desvantagens. Uma é que, se você gerar mais instâncias, será muito problemático escrever; O outro é que não há como saber se há alguma conexão entre a instância e o protótipo.
Modo construtor
Para resolver o problema de gerar instâncias a partir de objetos de protótipo, o JavaScript fornece um padrão de construtor.
O chamado "construtor" é na verdade uma função comum, mas essa variável é usada internamente. O uso do novo operador do construtor pode gerar uma instância, e essa variável estará vinculada ao objeto de instância.
Por exemplo, os objetos de protótipo de menino e menina podem ser escritos assim agora:
A cópia do código é a seguinte:
<script type = "text/javascript">
Função Pessoa (nome, idade) {
this.name = nome;
this.age = idade;
}
</script>
Agora podemos gerar objetos de instância.
A cópia do código é a seguinte:
<script type = "text/javascript">
var gary = nova pessoa ("Xiao Ming", "12");
var menina = nova pessoa ("xiaohong", "10");
alerta (menino.name); // Xiao Ming
alerta (menino.age); // 12
</script>
Neste momento, o garoto e a menina conterão automaticamente um atributo construtor apontando para o seu construtor.
A cópia do código é a seguinte:
alerta (boy.constructor == pessoa); //verdadeiro
alerta (menina.Constructor == Pessoa); //verdadeiro
O padrão de protótipo JavaScript estipula que cada construtor possui um atributo de protótipo apontando para outro objeto. Todas as propriedades e métodos desse objeto serão herdados pela instância do construtor.
Isso significa que podemos definir diretamente essas propriedades e métodos inalterados no objeto de protótipo.
A cópia do código é a seguinte:
<script type = "text/javascript">
Função Pessoa (nome, idade) {
this.name = nome;
this.age = idade;
}
Pessoa.protype.type = "humano";
Pessoa.protype.eat = function () {
alerta ("coma arroz");
}
</script>
Em seguida, gerar a instância:
A cópia do código é a seguinte:
<script type = "text/javascript">
var gary = nova pessoa ("Xiao Ming", "12");
var menina = nova pessoa ("xiaohong", "10");
alerta (menino.type); // humano
menino.eat (); // coma
</script>
Neste momento, os métodos de tipo de tipo de atributos e eat () de todas as instâncias são realmente o mesmo endereço de memória, apontando para o objeto de protótipo, melhorando assim a eficiência da operação.
alerta (menino.eat == Girl.eat); //verdadeiro
Uma propriedade de protótipo é uma propriedade interna que especifica a função do construtor que o objeto estende.
O código a seguir adiciona um novo tamanho de atributo à função do construtor animal, que é o atributo do protótipo do objeto CAT. Ao usar propriedades de protótipo, todos os objetos que estendem as funções do construtor animal podem acessar a propriedade Size
gato = novo animal ("felino", "mieow", "walk/run");
cat.prototype.size = "gordura";
Nesse caso, o atributo de tamanho de todos os objetos animais é "gordo". O protótipo padrão para uma nova instância do objeto. Como ainda é um objeto, novos atributos podem ser adicionados ao objeto. Assim como o Style é um objeto em JavaScript, você também pode continuar adicionando propriedades após o estilo.
A cópia do código é a seguinte:
<script type = "text/javascript">
/*Defina uma classe de pessoa*/
Função Pessoa (_name, _age, _Salary) {
// Os atributos públicos da classe da pessoa, os atributos públicos da classe são definidos como: "Este. Nome do atributo"
this.name = _name;
// Os atributos privados da classe da pessoa, os atributos privados da classe são definidos como: "Nome do atributo var"
var idade = _age;
var salário = _salário;
// Defina o método público (método privilegiado) da classe de pessoa, a definição do método público da classe
Sim: "this.functionName = function () {......}"
this.show = function () {
alerta ("idade ="+idade+"/t"+"salário ="+salário); // acessando as propriedades privadas da classe no método público é permitido
}
</script>
Quando um objeto procura uma determinada propriedade, ele primeiro atravessa suas próprias propriedades. Caso contrário, continuará procurando o objeto referenciado por [[protótipo]]. Caso contrário, continuará procurando o objeto referenciado por [[protótipo]]. [[Protótipo]] e assim por diante até [[[prototype]].
Simplificando, é para salvar uma referência a outro objeto através do [[protótipo]] do objeto e pesquisar os atributos através dessa referência. Esta é a cadeia de protótipo.
Objeto de janela global
Qualquer função global ou variável no JavaScript é uma propriedade da janela.
O objeto self é exatamente o mesmo que o objeto de janela. O eu é geralmente usado para confirmar que está na forma atual.
Os principais objetos principais da janela são os seguintes:
Javascript Document Object
Objeto Javascript Frames
Objeto de história javascript
Objeto de localização do JavaScript
Javascript Navigator Object
Javascript Screen Object
Vários métodos comuns
Método Valueof (): Retorna o valor original do objeto especificado
O método split () divide a string em uma matriz de string e retorna essa matriz.
O método indexOf () retorna a primeira ocorrência de um valor de string especificado na string.
O método substring () é usado para extrair caracteres em uma string entre dois subscritos especificados.
O método substr () extrai o número especificado de strings a partir da posição StartPOS da string.
O método junção () é usado para colocar todos os elementos na matriz em uma string.
ArrayObject.join (delimitador)
O método reverse () é usado para reverter a ordem dos elementos em uma matriz.
O método slice () retorna o elemento selecionado de uma matriz existente.
Objeto literal
Os literais de objetos são processos usados para criar um grande número de atributos.
A cópia do código é a seguinte:
<script type = "text/javascript">
Var Company = {
Nome: "Microsoft",
idades: 39,
Funcionários: 99000,
CEO: "Nadella"
};
</script>
Deve -se notar aqui que os atributos e os valores de atributo são separados por vários pontos (:); Vários atributos são separados por vírgulas (,). O objeto literal também pode definir métodos. Basta escrever a função nos atributos desse objeto. Esta é uma função anônima. Você só precisa escrever o nome do método () para chamá -lo.
A cópia do código é a seguinte:
<script type = "text/javascript">
var cão = {
Nome: "Husky",
Idade: 2,
Run: function () {
retornar "123";
}
}
alerta (cachorro.run ()); // se você entrar no cachorro.run, o código da parte da função depois que ele aparecerá
</script>
Javascript Array Part
1. Objeto de Anexo
Objeto de matriz: fornece suporte para criar matrizes de qualquer tipo de dados.
A cópia do código é a seguinte:
Arrayobj = novo Array ()
Arrayobj = nova matriz ([tamanho])
Arrayobj = novo Array ([Element0 [, Element1 [, ... [, Elementn]]]])
Definição: var arr = [2,3,45,6]; var arr = nova matriz (2,4,5,7)
Não há diferença na definição entre os dois, [] tem alto desempenho porque o código é curto.
Use a matriz e os literais de objeto: var atest = []; Ao criar matrizes, o uso de literais da matriz é uma boa escolha; Da mesma forma, os literais de objetos também podem ser usados para economizar espaço. As duas linhas a seguir são iguais, mas use os literais do objeto para ser mais curto:
var otest = novo objeto; // Tente não usá -lo
var otest = {}; // a melhor escolha, ou var 0Test = [];
Traversal Para alcançar o melhor desempenho de travessuras, é recomendável usar um clássico para loop.
A cópia do código é a seguinte:
var lista = [1, 2, 3, 4, 5, ...... 100000000];
for (var i = 0, l = list.length; i <l; i ++) {
console.log (lista [i]);
}
O código acima possui um processamento, que é armazenar em cache o comprimento da matriz através de l = list.length.
Construtor de matriz
Como o construtor da Array é um pouco ambíguo quando se trata de lidar com argumentos, é sempre recomendável usar a sintaxe literal das matrizes - [] - para criar matrizes.
Portanto, o seguinte código será confuso:
nova matriz (3, 4, 5); // Resultado: [3, 4, 5]
Nova matriz (3) // Resultado: [], o comprimento desta matriz é 3
Tente evitar o uso de construtores de matrizes para criar novas matrizes. Recomenda -se usar a sintaxe literal das matrizes. Eles são mais curtos e mais concisos, aumentando assim a legibilidade do código.
Propriedades do Array Array
3 Propriedades da matriz: atributo de comprimento, atributo de protótipo, atributo construtor
1. Atributo do comprimento
O atributo de comprimento representa o comprimento da matriz, ou seja, o número de elementos nele. Como o índice de uma matriz sempre começa em 0, os limites superior e inferior de uma matriz são: 0 e comprimento-1, respectivamente. Ao contrário da maioria dos outros idiomas, a propriedade de comprimento das matrizes JavaScript é mutável, o que requer atenção especial.
2. Atributo do protótipo
Retorna uma referência ao protótipo do tipo de objeto. O atributo do protótipo é comum ao objeto.
Para objetos de matriz, use o exemplo a seguir para ilustrar o objetivo do atributo protótipo.
Adicione um método ao objeto da matriz para retornar o valor máximo do elemento na matriz. Para conseguir isso, declare uma função, adicione -a ao Array.prototype e use -a.
A cópia do código é a seguinte:
função array_max ()
{
var i, max = this [0];
para (i = 1; i <this.length; i ++)
{
if (max <this [i])
max = this [i];
}
retornar max;
}
Array.prototype.max = array_max;
var x = nova matriz (1,2,3,4,5,6);
var y = x.max ();
Depois que este código é executado, Y economiza o valor máximo na matriz x, ou 6.
3. Atributo do construtor
Uma função que representa a criação de um objeto. Descrição: O atributo construtor é um membro de todos os objetos com protótipo. Eles incluem todos os objetos nativos do JScript, exceto objetos globais e matemáticos. A propriedade do construtor mantém uma referência à função que constrói uma instância de objeto específica.
Por exemplo:
A cópia do código é a seguinte:
x = new string ("oi");
if (x.Constructor == String) // Process (condição é verdadeira).
//ou
função myfunc {
// Corpo de função.
}
y = novo myfunc;
if (y.Constructor == MyFunc) // Processo (condição é verdadeira).
Para matrizes:
y = new Array ();
Método da matriz:
Anexou uma variedade de mapas mentais: