English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Parte do objeto
Tipo Object
Object é uma coleção não ordenada, pode armazenar qualquer tipo de objeto, e todos os outros objetos herdam deste objeto.
Existem dois tipos de criação de Object, um é o operador new e o outro é a notação litteral.
1Criação de Object usando new
var obj = new Object();//Atenção para maiúsculas, também pode ser escrita diretamente como Object()
Atenção, a criação de novos objetos usando a sintaxe new Object() é equivalente à criação de litterais obj = {}.
2Criação usando litterais:
var obj = { nome : 'trigkit4', idade : 21 };//Ponto-e-vírgula é melhor adicionado
Ao declarar um objeto Object usando litterais, não é chamado o construtor Object() (exceto no FF)
Objeto Object.prototype
Todas as funções construtoras têm uma propriedade prototype, que aponta para um objeto de protótipo.
Object.prototype.print = function(){ console.log(this)}; var obj = new Object(); obj.print() // Object
A instância obj herda diretamente as propriedades e métodos de Object.prototype
1.Objetos são apenas um tipo especial de dados. Os objetos possuem propriedades e métodos. JavaScript é uma linguagem orientada a objetos, mas não usa classes. JavaScript é baseado em [prototype][1], em vez de baseado em classes.
2.Propriedade: é uma variável que pertence a um objeto específico. Método: é uma função que pode ser chamada apenas por um objeto específico.
3Os objetos .js são conjuntos de propriedades e métodos. Um método é uma função, que é um membro do objeto. Uma propriedade é um valor ou um conjunto de valores (em forma de array ou objeto), que é um membro do objeto.
4Os objetos .js são baseados em funções construtoras, e ao criar um novo objeto usando uma função construtora, podemos dizer que instanciou um novo objeto. As propriedades são variáveis dentro da função construtora.
Objetos instanciados por função construtora:
cat = new Animal();
Javascript é uma linguagem baseada em (objetos)-Um linguagem baseada em (objetos),tudo o que você encontrar quase é um objeto. No entanto, não é uma linguagem de programação orientada a objetos (OOP) verdadeira, porque não há class (classe) em sua sintaxe.
<script type="text/javascript"> //O objeto é nome/Conjunto de pares de valores var browser = { //O objeto é delimitado por chaves name:"Firefox", kernel:"Gecko" }; </script> //Acesso às propriedades do objeto através do ponto (.) ou "[]" browser.name //"Firefox" browser["kernel"] //"Gecko"
Objeto (objct) é um conjunto de propriedades, cada propriedade é composta por 'nome/Constituído por pares de valores, o JavaScript também definiu um objeto especial - array, que é uma coleção ordenada de valores numerados.
O JavaScript também definiu um objeto especial - função, função é um objeto que possui código executável associado, executando o código através da chamada da função e retornando o resultado da operação.
Não há classes no JavaScript, mas ele adotou um novo nome chamado 'objeto protótipo', então 'classe == objeto protótipo', detalhes vejam: A escrita da classe do JavaScript (um)
II. Diferenças e relações entre classe (objeto protótipo) e objeto (instância)
1.classe (objeto protótipo) é abstrata, conceitual, representando uma categoria de coisas.
2.objeto é específico, real, representando uma coisa específica.
3.classe (objeto protótipo) é o modelo de objeto da instância de objeto, a instância de objeto é um indivíduo da classe.
Uma compreensão comum errada é que os valores literais (literais) não são objetos. Isso é porque o analisador do JavaScript tenta interpretar o operador de ponto como parte de um valor literal de ponto flutuante.
Existem muitos métodos alternativos que podem fazer com que os valores literais de números pareçam ser objetos.
2..toString(); // O segundo ponto pode ser interpretado normalmente
2 .toString(); // Atenção ao espaço antes do ponto
(2).toString(); // 2Primeiro é calculado
Excluir propriedade
O único método para excluir uma propriedade é usar o operador delete; Definir uma propriedade como undefined ou null não exclui realmente a propriedade, mas apenas remove a associação entre a propriedade e seu valor.
Três grandes características do orientação a objetos no JavaScript
Encapsulação: Sem considerar a implementação interna, apenas a utilização das funções
Herança: Criar novos objetos a partir de objetos existentes
Polimorfismo: O que se entende por polimorfismo é que uma referência pode ter vários estados em diferentes situações,
1.encapsulação
A encapsulação é sobre reunir as características comuns de coisas do mesmo tipo (inclusive propriedades e comportamentos) em uma classe, facilitando seu uso. Por exemplo, a pessoa pode ser encapsulada da seguinte maneira:
Pessoa{
Idade (a primeira propriedade)
Altura (a segunda propriedade)
Gênero (a terceira propriedade)
Fazer (o primeiro comportamento)
Andar (o segundo comportamento)
Falar (um dos três comportamentos)
}
Os benefícios da encapsulação:
A encapsulação protege a integridade dos dados internos;
A encapsulação facilita a reestruturação de objetos;
Atenua a耦合 entre módulos, aumentando a reutilização dos objetos;
Ajuda a evitar conflitos de espaço de nomes;
Veja o exemplo a seguir:
<script type="text/javascript"> var boy = {}; //Cria um objeto vazio boy.name = "Mingming";//Atribuição de propriedades conforme o objeto prototype boy.age = 12; Cria um objeto vazio girl.name = "Xiaohong"; girl.age = 10; </script>
Isso é a mais simples encapsulação, encapsulando duas propriedades em um objeto. No entanto, essa abordagem tem duas desvantagens: uma é que, se gerarmos várias instâncias, é muito complicado escrevê-las; a outra é que não há maneira de ver qual é a relação entre a instância e o prototype.
Padrão de construtor
Para resolver o problema de geração de instância a partir do objeto prototype, o Javascript oferece um padrão de construtor (Constructor).
O que chamamos de "construtor" é uma função comum, mas que usa a variável this internamente. Ao usar o operador new com um construtor, podemos gerar instâncias e a variável this será ligada ao objeto de instância.
Por exemplo, o objeto prototype de boy e girl pode ser escrito assim:
<script type="text/javascript"> function Person(name,age){ this.name = name; this.age = age; } </script>
Agora podemos gerar objetos de instância.
<script type="text/javascript"> var boy = new Person("小明",12); var girl = new Person("小红",10); alert(boy.name); //Mingming alert(boy.age); //12 </script>
Neste momento, boy e girl automaticamente terão um atributo constructor, que aponta para seus construtores.
alert(boy.constructor == Person); //true
alert(girl.constructor); //Imprime todo o código do construtor, experimente você mesmo
O padrão Prototype do Javascript determina que cada construtor tem um atributo prototype, que aponta para outro objeto. Todas as propriedades e métodos deste objeto serão herdados pelas instâncias do construtor.
Isso significa que podemos definir diretamente nas propriedades e métodos inalteráveis do objeto prototype.
<script type="text/javascript"> function Person(name,age){ this.name = name; this.age = age; } Person.protype.type = "Humano"; Person.protype.eat = function(){ alert("Comer arroz"); } </script>
Depois, gera instância:
<script type="text/javascript"> var boy = new Person("小明","12"); var girl = new Person("小红","10"); alert(boy.type);//Humano boy.eat();//Comer </script>
Neste momento, todas as propriedades type e métodos eat() dos instâncias são endereços de memória iguais, apontando para o objeto prototype, portanto, melhora a eficiência de execução.
alert(boy.eat == girl.eat); //true
A propriedade de prototype é uma propriedade interna que especifica o construtor de extensão do objeto.
Abaixo está o código que adiciona uma nova propriedade size ao construtor Animal, essa nova propriedade é a propriedade de prototype do objeto cat. Ao usar propriedades de prototype, todos os objetos que extendem o construtor Animal podem acessar a propriedade size
cat = new Animal("feline","meow", "walk/run"); cat.prototype.size = "fat";
Neste caso, todas as propriedades size dos objetos Animal são "fat" . O prototype é uma nova instância de Object, pois ainda é um objeto, podemos adicionar novas propriedades a ele. Assim como style é um objeto do JavaScript, também podemos adicionar novas propriedades ao estilo.
<script type="text/javascript"> /*Definir uma classe Person*/ function Person(_name,_age,_salary){ //Propriedades públicas da classe Person, a forma de definir propriedades públicas é: ”this.nomeDoAtributo“ this.Name=_name; //Propriedades privadas da classe Person, a forma de definir propriedades privadas é: ”var nomeDoAtributo“ var Age=_age; var Salary=_salary; //Definir métodos públicos (métodos privilegiados) da classe Person, a forma de definir métodos públicos da classe é: ”this.functionName=function(){.....}“ this.Show=function(){ alert("Age="+Age+"\t"+"Salary="+Salary);//É permitido acessar propriedades privadas dentro de métodos públicos } </script>
Quando um objeto está buscando por um atributo, ele primeiro percorre seus próprios atributos, se não encontrar, continua buscando na referência [[Prototype]] do objeto, se ainda não encontrar, continua buscando na referência [[Prototype]].[[Prototype]] do objeto, e assim por diante, até que [[Prototype]].….[[Prototype]] seja undefined (o [[Prototype]] do Object é undefined)
Em termos simples, é através do [[Prototype]] do objeto que é salva uma referência para outro objeto, através dessa referência, é feita a busca pelas propriedades para cima, isso é a cadeia de prototypes.
objeto null
O propósito de atribuir null a uma variável no JavaScript é:
Atribuir um ponteiro vazio facilita a compreensão de que a variável está destinada a armazenar um objeto. Também facilita o debug.
objeto global window
Qualquer função ou variável global no JavaScript é uma propriedade do objeto window.
O objeto self é completamente idêntico ao objeto window, o self é geralmente usado para confirmar que está no contexto da janela atual.
Os principais objetos principais da window são os seguintes:
objeto document do JavaScript
objeto frames do JavaScript
objeto history do JavaScript
objeto location do JavaScript
objeto navigator do JavaScript
objeto screen do JavaScript
alguns métodos comuns
método valueof(): retorna o valor original do objeto especificado
o método split() divide uma string em um array de strings e retorna esse array.
o método indexOf() pode retornar a posição da primeira ocorrência de um valor específico na string.
o método substring() é usado para extrair caracteres entre dois índices específicos de uma string.
o método substr() pode extrair uma quantidade específica de caracteres a partir de uma string, começando do posição startPos.
o método join() é usado para inserir todos os elementos de um array em uma string.
arrayObject.join(qualificador)
o método reverse() é usado para inverter a ordem dos elementos de um array.
o método slice() pode retornar elementos selecionados de um array existente.
expressão literal de objeto
A expressão literal de objeto é usada para criar um processo que contém muitos atributos, como mostrado a seguir:
<script type="text/javascript"> var company = { name: "Microsoft", ages : 39, employees : 99000, CEO: "Nadella" }; </script>
A coisa a ser notada é que os atributos e seus valores são separados por dois pontos (:); múltiplos atributos são separados por vírgulas (,). Uma expressão literal de objeto pode definir métodos, bastando escrever 'function' no atributo do objeto, isso é uma função anônima, para chamá-la, basta escrever o nome do método().
<script type="text/javascript"> var cão = { nome:"cão", idade:2, run:function(){ return "123"; } } alert(dog.run());//Se a entrada for dog.run, então será exibido o código da parte function seguinte </script>
Encapulamento de tipos de valores básicos
O JavaScript tem cinco tipos básicos de valores: number, string, Boolean, null e undefined. Além de null e undefined, os outros três têm chamados de objetos de encapulamento básico. Pode-se usar os construtores internos Number(), String() e Boolean() para criar objetos de encapulamento.
var num = new Number(10); console.log(typeof num);//object Método Object() Object(); // Retorna um objeto vazio Object(undefined); // Retorna um objeto vazio Object(null); // Retorna um objeto vazio Object(1) // É equivalente a new Number(1) Object('foo'); // É equivalente a new String('foo') Object(true); // É equivalente a new Boolean(true) Object([]); // Retorna o array original Object({}); // Retorna o objeto original Object(function(){}); // Retorna a função original
Parte do array
1.Objeto Array
Objeto Array: fornece suporte para criar arrays de qualquer tipo de dados.
arrayObj = new Array()
arrayObj = new Array([tamanho])
arrayObj = new Array([elemento0[, elemento1[ ..., [elementoN]]]])
Definição: var arr = [2,3,45,6]; var arr = new Array(2,4,5,7)
Ambos não têm diferença de definição, [] tem melhor desempenho devido ao código mais curto.
Usando arrays e literais de objetos: var aTest = []; É uma boa escolha usar literais de arrays ao criar arrays; De forma semelhante, literais de objetos também podem ser usados para economizar espaço. As duas linhas a seguir são iguais, mas a que usa o literal de objeto é mais curta:
var oTest = new Object; //Evite usar var oTest = { }; //A melhor escolha, ou var 0Test = [ ];
Para obter o melhor desempenho na iteração de arrays, recomenda-se usar o classic for loop.
var list = [1, 2, 3, 4, 5, ...... 100000000]; for(var i = 0, l = list.length; i < l; i++) { console.log(list[i]); }
O código acima tem uma manipulação, que é o cache do comprimento do array através de l = list.length.
Construtor Array
Devido à ambiguidade do construtor Array em como lidar com parâmetros, sempre é recomendável usar a sintaxe literal dos arrays - [] - para criar arrays.
Portanto, o seguinte código pode ser confuso:
new Array(3, 4, 5); // Result: [3, 4, 5]
new Array(3) // Result: [], o comprimento deste array é 3
Deve-se evitar ao máximo usar o construtor de array para criar novos arrays. Recomenda-se usar a sintaxe literal dos arrays. Eles são mais curtos e concisos, aumentando assim a legibilidade do código.
do Array de arrays propriedades
do Array de arrays3As seguintes propriedades: propriedade length, propriedade prototype, propriedade constructor
1.length propriedade
A propriedade length representa o comprimento do array, ou seja, o número de elementos nele. Como os índices do array sempre começam por 0, os limites de um array são: 0 e length-1Diferente de outras linguagens, o atributo length do Array em JavaScript é mutável, o que deve ser notado especialmente.
2.prototype propriedade
Retorna a referência ao prototype do objeto. A propriedade prototype é comum a todos os objetos.
Para exemplificar o uso da propriedade prototype no objeto Array, considere o seguinte exemplo.
Adicionar um método ao objeto Array que retorna o maior elemento do array. Para fazer isso, declare uma função, adicione-a a 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]; } return max; } Array.prototype.max=array_max; var x=new Array(1,2,3,4,5,6); var y=x.max();
Após a execução deste código, y armazena o valor máximo do array x, ou seja6.
3.propriedade constructor
Representa a função de criação de objetos. Observação: a propriedade constructor é um membro de todos os objetos que têm prototype. Inclui todos os objetos nativos do JScript, exceto os objetos Global e Math. A propriedade constructor armazena uma referência para a função que constrói a instância específica do objeto.
Por exemplo:
x = new String("Hi"); if(x.constructor==String) //Para processar (condição verdadeira). //ou function MyFunc{ //Corpo da função. } y=new MyFunc;
if(y.constructor==MyFunc)//Para processar (condição verdadeira).
Para arrays:
y = new Array();
Método do objeto Array
Método sort()
Sintaxe
arrayObject.sort(sortby)
sortby opcional. Determina a ordem de classificação. Deve ser uma função.
var arr = [11,2,28,4,5,1});
console.log(arr.sort());//return [1, 11, 2, 28, 4, 5]
Porque aqui?11、28Não está ordenado? Isso porque o sort sem parâmetros ordena conforme a ordem do código de caractere.
Então, se quiser ordenar os elementos do array de menor para maior, veja o código a seguir:
var arr = [11,2,28,4,5,1}); console.log(arr.sort(function(a,b){ return a-b;//return [1, 2, 4, 5, 11, 28] });
Se quiser classificar conforme outros padrões, é necessário fornecer uma função de comparação, que compara dois valores e retorna um número que descreve a ordem relativa desses valores. A função de comparação deve ter dois parâmetros 'a' e 'b', cujos valores de retorno são os seguintes:
Se a variável 'a' for menor que 'b', na ordem de classificação, 'a' deve aparecer antes de 'b', então retorna um valor menor que 0.
Se a variável 'a' for igual a 'b', retorna 0.
Se a variável 'a' for maior que 'b', retorna um valor maior que 0.
Isso é tudo o que há no artigo, espero que ajude no seu aprendizado e que vocês apoiem o tutorial Gritar.