Fecho
-
O que é um fechamento
As funções são funções aninhadas, e a função interna pode acessar as variáveis da função externa, é chamada de fechamento
(function(){
var a = 1;
function fn() {
var b = 2;
var sum = b + a;
console.log(sum);
}
fn();
})()
- A função fn chama a variável a na função externa
-
A função dos
encerramentos, a maior função dos encerramentos é ocultar variáveis. Uma das principais características dos encerramentos é que as funções internas podem sempre acessar os parâmetros e as variáveis declaradas na função externa em que estão localizadas, mesmo após o retorno da função externa, com base nisso O recurso javaScript pode perceber a existência de variáveis privadas -
As vantagens dos fechamentos
podem isolar o escopo e não causarão poluição global das variáveis -
Desvantagens: os
fechamentos permanecem na memória por um longo tempo, resultando em vazamentos de memória.
Solução: redefina as variáveis de fechamento expostas como nulas
Cadeia de protótipo
Quando chamamos um método ou propriedade de um objeto, vamos primeiro encontrar o método na instância do objeto, se houver, vamos chamá-lo, se não, usaremos o proto (protótipo) do objeto para pesquisar, se nós localizá-lo, iremos executar a chamada. Ele irá pesquisar no protótipo do objeto criado, ou seja, no protótipo do objeto. Se for encontrado, a chamada será executada. Caso contrário, continuará a pesquisa no protótipo .proto. Caso contrário, vá para prototype.proto.prototype para pesquisar até que a consulta seja encontrada. null é o topo da cadeia de protótipos
- proto:
protótipo explícito - Protótipo:
protótipo implícito Quando um objeto é usado como uma função construtora, ele será usado como o protótipo da função recém-construída