A diferença entre chamadas de função JavaScript com e sem parênteses
Tags relacionadas:1. Exemplo de JavaScript
2. Protótipos e herança em JavaScript
Introdução: function fun() { return 1; } var a = fun; var b = fun(); Em JavaScript, chamamos o seguinte código de função: function fun() { return 1; } Uma função é um tipo de referência chamado function, portanto a função é um objeto. O objeto é armazenado na memória, e o nome da função é um ponteiro para esse objeto. var
function fun ( ) {
return 1 ;
}
var a = fun;
var b = fun( );
Em JavaScript, chamamos o seguinte código de função:
function fun ( ) {
return 1 ;
}

Uma função é uma instância de um tipo de referência chamado function, portanto uma função é um objeto. O objeto é armazenado na memória, e o nome da função é um ponteiro para esse objeto.
var a = fun significa copiar o ponteiro do nome da função fun para a variável a, mas isso não significa que a função em si seja copiada.
Ou seja: a é a função fun, b é 1
Se o nome da função for seguido por parênteses, significa que o código dentro da função (o código entre chaves) é chamado (executado) imediatamente.
【Chamadas de função JavaScript com e sem parênteses】
Sem parênteses, o nome da função é usado como o ponteiro da função. O nome de uma função é o ponteiro da função. Nesse caso, o resultado da função não é obtido, porque o código do corpo da função não será executado. Ele apenas passa o endereço onde o corpo da função está localizado, para que seja possível encontrar o corpo da função e executá-lo quando necessário.
Por exemplo:
window.onload = init ;
A função init não será executada quando esta linha de código for processada. Quando o navegador carrega o documento, essa instrução é carregada e indica qual função deve ser executada após o carregamento do documento, mas não é executada naquele momento, somente após todo o documento ser carregado. A função init() será executada por meio do ponteiro init.
Nota: Parte do conteúdo deste artigo foi referenciada de:
https://www.zhihu.com/question/31044040
http://blog.csdn.net/yyx19941129/article/details/49642515
Autor: jiankunking Fonte: http://blog.csdn.net/jiankunking
Aviso de direitos autorais: O conteúdo deste artigo foi contribuído por usuários registrados com nome real da Alibaba Cloud. Os direitos autorais pertencem ao autor original. A comunidade de desenvolvedores da Alibaba Cloud não detém os direitos autorais e não assume a responsabilidade legal correspondente. Para regras específicas, consulte o "Contrato de Serviço do Usuário da Comunidade de Desenvolvedores da Alibaba Cloud" e as "Diretrizes de Proteção à Propriedade Intelectual da Comunidade de Desenvolvedores da Alibaba Cloud". Se você encontrar qualquer conteúdo suspeito de plágio nesta comunidade, preencha o formulário de denúncia de infração para reportá-lo. Uma vez verificado, esta comunidade excluirá imediatamente o conteúdo supostamente infrator.
2. Protótipos e herança em JavaScript
Introdução: function fun() { return 1; } var a = fun; var b = fun(); Em JavaScript, chamamos o seguinte código de função: function fun() { return 1; } Uma função é um tipo de referência chamado function, portanto a função é um objeto. O objeto é armazenado na memória, e o nome da função é um ponteiro para esse objeto. var
function fun ( ) {
return 1 ;
}
var a = fun;
var b = fun( );
Em JavaScript, chamamos o seguinte código de função:
function fun ( ) {
return 1 ;
}

【Chamadas de função JavaScript com e sem parênteses】
Uma função é uma instância de um tipo de referência chamado function, portanto uma função é um objeto. O objeto é armazenado na memória, e o nome da função é um ponteiro para esse objeto.
var a = fun significa copiar o ponteiro do nome da função fun para a variável a, mas isso não significa que a função em si seja copiada.
Ou seja: a é a função fun, b é 1
Se o nome da função for seguido por parênteses, significa que o código dentro da função (o código entre chaves) é chamado (executado) imediatamente.
【Chamadas de função JavaScript com e sem parênteses】
Sem parênteses, o nome da função é usado como o ponteiro da função. O nome de uma função é o ponteiro da função. Nesse caso, o resultado da função não é obtido, porque o código do corpo da função não será executado. Ele apenas passa o endereço onde o corpo da função está localizado, para que seja possível encontrar o corpo da função e executá-lo quando necessário.
Por exemplo:
window.onload = init ;
A função init não será executada quando esta linha de código for processada. Quando o navegador carrega o documento, essa instrução é carregada e indica qual função deve ser executada após o carregamento do documento, mas não é executada naquele momento, somente após todo o documento ser carregado. A função init() será executada por meio do ponteiro init.
Nota: Parte do conteúdo deste artigo foi referenciada de:
https://www.zhihu.com/question/31044040
http://blog.csdn.net/yyx19941129/article/details/49642515
Autor: jiankunking Fonte: http://blog.csdn.net/jiankunking
Aviso de direitos autorais: O conteúdo deste artigo foi contribuído por usuários registrados com nome real da Alibaba Cloud. Os direitos autorais pertencem ao autor original. A comunidade de desenvolvedores da Alibaba Cloud não detém os direitos autorais e não assume a responsabilidade legal correspondente. Para regras específicas, consulte o "Contrato de Serviço do Usuário da Comunidade de Desenvolvedores da Alibaba Cloud" e as "Diretrizes de Proteção à Propriedade Intelectual da Comunidade de Desenvolvedores da Alibaba Cloud". Se você encontrar qualquer conteúdo suspeito de plágio nesta comunidade, preencha o formulário de denúncia de infração para reportá-lo. Uma vez verificado, esta comunidade excluirá imediatamente o conteúdo supostamente infrator.
Artigos relacionados
-
6 tecnologias opcionais para armazenamento de dados
Equipe da Base de Conhecimento
Explorar mais ofertas especiais
-
Short Message Service (SMS) e Serviço de E-mail
Pacote de 50.000 e-mails a partir de apenas US$ 1,99; 120 mensagens curtas a partir de apenas US$ 1,00
