Parte do objeto
Tipo de objeto
O objeto é uma coleção não ordenada que pode armazenar objetos de qualquer tipo, e todos os outros objetos são herdados desse objeto.
Existem dois tipos de criação de objetos, um é usar o novo operador e o outro é a notação literal.
1. Crie um objeto usando o novo operador
var obj = new Object (); // Preste atenção à capitalização, você também pode escrevê -lo diretamente como objeto ()
Observe que a geração de um novo objeto através do método novo objeto () é equivalente ao método literal obj = {}.
2. Crie usando o método literal:
var obj = {nome: 'trigkit4', idade: 21}; // o semicolon é melhor para adicionarAo declarar um objeto usando literais, o construtor objeto () não é chamado (exceto FF)
Object.Prototype Object
Todos os construtores possuem um atributo de protótipo que aponta para um objeto de protótipo.
Object.prototype.print = function () {console.log (this)}; var obj = new Object (); obj.print () // objetoO OBJ da instância herda diretamente as propriedades e métodos de objeto.prototype
1. 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 no [protótipo] [1], não em classe.
2. 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.
3.JS Objetos são uma coleção 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.
O objeto 4.JS é baseado na função do construtor. Ao usar a função 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 ();
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.
<script type = "text/javascript"> // objeto é uma coleção de pares de nome/valores var navegador = {// objeto é o nome incluído em aparelhos encaracolados: "Firefox", kernel: "gecko"};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.
O JS também define um objeto especial - uma 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.
Não há classe no JS, mas é preciso um novo nome chamado "Objeto de protótipo", então "class == Objeto de protótipo", consulte: Javascript Classe Writing Method (i)
2. A diferença e a conexão entre 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:
<script type = "text/javascript"> var boy = {}; // Crie um objeto vazio Boy.Name = "Xiao Ming"; // Design Boy.age = 12 De acordo com as propriedades do objeto de protótipo, var girl = {}; 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:
<script type = "text/javascript"> function pessoa (nome, idade) {this.name = name; this.age = idade; } </script>Agora podemos gerar objetos de instância.
<script type = "text/javascript"> var boy = nova pessoa ("xiao ming", 12); var menina = nova pessoa ("Xiao Hong", 10); alerta (menino.name); // Xiao Ming Alert (Boy.age); // 12 </script>Neste momento, o garoto e a menina conterão automaticamente um atributo construtor apontando para o seu construtor.
alerta (boy.constructor == pessoa); //verdadeiro
alerta (menina.constructor); // Emitir toda a sequência de código do construtor, tente você mesmo
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 por instâncias do construtor.
Isso significa que podemos definir diretamente essas propriedades e métodos inalterados no objeto de protótipo.
<script type = "text/javascript"> function pessoa (nome, idade) {this.name = name; this.age = idade;} pessoa.protype.type = "humano"; pessoa.protype.eat = function () {alert ("coma arroz");} </script>Em seguida, gerar a instância:
<script type = "text/javascript"> var boy = nova pessoa ("xiao ming", "12"); var menina = nova pessoa ("xiao hong", "10"); alerta (boy.type); // menino humano.eat (); // eat </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.
<script type = "text/javascript">/*define uma classe de pessoa*/função pessoa (_name, _age, _salary) {// o atributo público da classe Pessoa, o atributo público da classe é definido como: "this.property nome" this.name = _name; // O atributo privado da classe Pessoa, o atributo privado da classe é definido como: "Nome do atributo var" var Age = _Aage; var salário = _salário; // define o método público (método privilegiado) da classe Pessoa, o método público da classe é definido como: "this.functionName = function () {.....}" this.show = function () {alert ("Age ="+Age+"/t"+"Salário ="+Salário); // // // ////"+Age+"/T "+" Público = Público (//);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 nulo
A função do JS que atribuindo valores nulos a variáveis é:
A atribuição de um ponteiro nulo facilita a compreensão de que essa variável está preparada para armazenar objetos. Também é conveniente ajustar o errado
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 propriedades, como segue:
<script type = "text/javascript"> var empresa = {name: "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.
<script type = "text/javaScript"> var cão = {name: "husky", idade: 2, run: function () {return "123";}} alert (cachorro.run ()); // se você entrar no cachorro.run, o código para a função parte atrás dela aparecerá </cript>Wrapper de tipo de valor básico
Existem cinco tipos de valor básico em js: número, string, booleano, nulo e indefinido. Exceto por nulo e indefinido, os outros três têm os chamados objetos básicos de embalagem. Os construtores embutidos número (), string () e boolean () podem ser usados para criar objetos de wrapper.
var num = new Number(10);console.log(typeof num);//object Object() method Object() // Return an empty object Object(undefined) // Return an empty object Object(null) // Return an empty object Object(1) // Equivalent to new Number(1)Object('foo')Object(true) // Equivalent to new String('foo')Object(true) // Equivalent to new Boolean (true) objeto ([]) // retorna o objeto de matriz original ({}) // retorna o objeto original (function () {}) // retorna a função originalParte da matriz
1. Objeto de Anexo
Objeto de matriz: fornece suporte para criar matrizes de qualquer tipo de dados.
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 usar 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.
var lista = [1, 2, 3, 4, 5, ...... 1000000]; para (var i = 0, l = list.length; i <l; i ++) {console.log (list [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
Três 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 fazer isso, declare uma função, adicione -a ao Array.prototype e use -a.
function array_max () {var i, max = this [0]; for (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:
x = new string ("oi"); if (x.Constructor == String) // Process (condição é verdadeira). // ou função myfunc {// func. } y = novo myfunc;if (y.Constructor == MyFunc) // Processo (condição é verdadeira).
Para matrizes:
y = new Array ();
Método do objeto de matriz
Método Sort ()
gramática
ArrayObject.sort (Sortby)
Sortby Opcional. Especifique a ordem de classificação. Deve ser uma função.
var arr = [11,2,28,4,5,1];
console.log (arr.sort ()); // retorna [1, 11, 2, 28, 4, 5]
Por que os 11 e 28 aqui não estão dispostos em ordem? Isso ocorre porque a classificação sem parâmetros é classificada na ordem de codificação de caracteres.
Então, e se quisermos classificar os elementos da matriz de pequeno a grande? Veja o seguinte código:
var arr = [11,2,28,4,5,1]; console.log (arr.sort (função (a, b) {return ab; // retorna [1, 2, 4, 5, 11, 28]}));Se você deseja classificar por outros critérios, precisa fornecer uma função de comparação que compare dois valores e depois retorne um número que ilustra a ordem relativa dos dois valores. A função de comparação deve ter dois parâmetros A e B, e seu valor de retorno é o seguinte:
Se A for menor que B, A deve aparecer antes de B na matriz classificada, um valor menor que 0 será retornado.
Se A for igual a B, retorne 0.
Se A for maior que B, um valor maior que 0 será retornado.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.