quarta-feira, 27 de novembro de 2013

JAVASCRIPT CARACTERÍSTICAS 1

CARACTERÍSTICAS DO JAVASCRIPT (continuação)


Baseada em Protótipos

JavaScript usa protótipos em vez de classes para o mecanismo de herança. É possível simular muitas características de orientação a objetos baseada em classes com protótipos.

Funções e métodos

Diferente de muitas linguagens orientadas a objetos, não há distinção entre a definição de uma função e a definição de um método no JavaScript. A distinção ocorre durante a chamada da função; a função pode ser chamada como um método. Quando uma função é chamada como método de um objeto, a keyword this da função é associada àquele objeto via tal invocação.

Funções como Construtores de Objetos

 Funções duplica-se como construtores de objetos juntamente com o seu papel típico.  Prefixar uma chamada de função com "new" vai criar uma instância de um protótipo, herança de propriedades e métodos do construtor (incluindo propriedades do protótipo Object) .
 ECMAScript 5 oferece o método Object.create, permitindo a criação explícita de uma instância sem automaticamente herdar o protótipo Object (versões mais antigas podem atribuir null ao protótipo). As propriedades do construtor do prototype determinam o objeto usado para prototype interno do novo objeto.
 Novos métodos pode ser adicionado através da modificação do protótipo do objecto utilizado como um construtor. Construtores internos do JavaScript, como Array ou Object, também têm protótipos que podem ser modificados.
  Embora seja possível modificar o protótipo de objeto , é geralmente considerado uma má prática porque a maioria dos objetos em Javascript vão herdar métodos e propriedades do objeto prototype e eles podem não esperar que o protótipo seja modificado.

Funções como Métodos

Ao contrário de muitas linguagens orientadas a objeto, não há distinção entre a definição de função e a definição de método. Ao invés disto a distinção ocorre durante a chamada da função; quando a função é chamada como um método de um objeto, a função local da palavra-chave this  é ligada a esse objeto para a invocação.

Delegação Implícita e Explícita.


Javascript é uma linguagem de delegação, que podem compreender 3 notações:
  • Mais comumente, refere-se a um recurso de linguagem de programação fazendo uso das regras de pesquisa de método para o envio das assim conhecidas auto-chamadas, "Usando objetos protótipos para implementar o comportamento compartilhado em sistemas orientados a objetos " . Delegação como um recurso de linguagem suporta o modelo de programação baseado em protótipo.
  • Delegação originalmente refere-se a um objeto depender de outro para fornecer um determinado conjunto de funcionalidades. Nas pesquisas, esta é muitas vezes referido como consulta ou como agregação na modelagem.
  • Na CLI(Common Language Infrastructure), delegado é uma forma de ponteiro de função de tipo seguro, normalmente usado em um padrão de observador como um meio de dizer qual método a ser chamado quando um evento é disparado, mantendo o tipo de método.
Apesar de a delegação ser bastante difundido , relativamente poucos linguagens de programação principais implementam delegação como um modelo alternativo à herança estática. 
Delegação multicast aponta para vários métodos. Assim quando o multicast é invocado, um mecanismo provê uma funcionalidade de execução de uma a lista interna de delegados.

Funções como Roles (Traits  e Mixins)

 JavaScript suporta nativamente várias funções baseadas nas implementações de padrões Role (padrão de regras sociais humanas) como Traits  e Mixins (reutilização de métodos). Tais funções definem comportamento adicional de pelo menos um método vinculado à esta palavra-chave dentro de seu corpo da função.
 Um Role então tem que ser delegado explicitamente via chamada ou se aplicar a objetos que precisam apresentam comportamento adicional que não é compartilhada por meio da cadeia de protótipos.

Tipo de Composição e Herança


Considerando que funções explícitas baseadas em delegação faz cobrir composições em JavaScript, a delegação implícita já acontece cada vez que a cadeia de protótipos é acionada, por exemplo, a fim de encontrar um método que pode ser relacionado, mas não é diretamente possuído por um objeto.
 Uma vez que o método foi encontrado, é chamado dentro deste contexto dos objetos. Por conseguinte, herança em JavaScript é coberto por um automatismo de delegação que é ligado ao slot protótipo das funções construtoras.

Características Gerais

Ambiente De Tempo de Execução (Run-time)

 JavaScript geralmente se baseia em um ambiente de tempo de execução (por exemplo, um navegador da web ) para fornecer os objetos e métodos com quais os scripts podem interagir com o ambiente. 
 Depende também do ambiente de tempo de execução para fornecer a capacidade de incluir/importar scripts ( por exemplo, elementos HTML <script>).
 Este não é um recurso de linguagem em si, mas é comum na maioria das implementações de JavaScript


Funções Variadic (Funções Que Aceitam Inúmeros Argumentos)

Um número indefinido de parâmetros podem ser passados para uma função. A função pode acessá-los através de parâmetros formais e também através de argumentos de objetos locais. Funções Variadic podem também ser criadas por utilização de métodos de aplicação.

Arrays e Objetos Literais

Como em muitas linguagens por scripts, arrays e objetos (arrays associativas em outras linguagens) podem cada um ser criados com uma sintaxe de atalho resumida. Na verdade, estas literais formam a base do formato de dados do JSON.


Expressões Regulares

JavaScript também suporta expressões regulares de uma maneira similar ao Perl, provendo uma sintaxe concisa e poderosa para manipulação de texto que é mais sofisticada que as funções internas de string.


Extensões Específicas de Outros Fornecedores

JavaScript é oficialmente gerido pela Mozilla Foundation, e novos recursos de linguagem são adicionados periodicamente. No entanto, apenas alguns dispositivos em JavaScript suportar estas novas funcionalidades:

  • Propriedades de funções getter e setter (suportados pelo WebKit, Opera, o ActionScript, e Rhino).
  • Cláusulas catch condicionais.
  • Protocolo iterador (adotada a partir de Python).
  • Geradores leves de co-rotinas (adotada a partir de Python).
  • Compreensões de arrays e gerador de expressões (adotada a partir de Python).
  • escopo de bloco apropriado através da palavra-chave let.
  • array e objeto de desestruturação (forma limitada de correspondência de padrões).
  • expressões de função concisas (function (args) expr).
  • ECMAScript para XML (E4X), uma extensão que adiciona suporte XML nativo para ECMAScript.

Utilização em WEB Pages

O uso mais comum de JavaScript é para escrever funções que são inseridas ou incluidas a partir de páginas HTML e que interage com o modelo de objeto documental (Document Object Model)  da página. Alguns exemplos simples de utilização são
  • carregar novos conteúdos de páginas ou submeter dados ao servidor através de AJAX sem recarregar a página (por exemplo, uma rede social pode permitir ao usuário postar atualização de status sem deixar a página)
  • Elementos de animação da página, esmaecer e desmaecer, redimensionar, mover, etc.
  • Conteúdo interativo, por exemplo para jogos, e tocando áudio e vídeos.
  • Validando valores imputados de formulários web para assegurar que eles são aceitáveis antes de submeter ao servidor.
  • Transmitir informações sobre os hábitos de leitura do usuário e atividade de navegação em vários sites. Páginas web fazem frequentemente isto análise web, monitoramento, personalização e outros propósitos.
Por o código Javascript pode ser executado localmente no navegador do usuário(a invés de em um servidor remoto),  o navegador pode responder às ações do usuário rapidamente, tornando uma aplicação mais responsiva. 
Além disto, pode detectar ações do usuário que o HTML sozinho não consegue, tal como um grifos individuais da letra.
Aplicação como Gmail toma vantagem disto: muitas lógicas de interface do usuário são escritas em JavaScript, e JavaScript envia requisições por informações (como o conteúdo da mensagem de e-mail) ao servidor. Uma ampla tendência da programação AJAX explora semelhantemente esta vantagem. Ajax

Interpretador JavaScript

Um Dispositivo JavaScript [JavaScript engine] (também conhecido como implementação JavaScript) é responsável por interpretar o código fonte e executar os scripts de acordo com as instruções.



http://shichuan.github.io/javascript-patterns/ Padrões de Programação de JavaScript

Nenhum comentário:

Postar um comentário