Este artigo resume problemas comuns na definição de função JavaScript. Contém erros comuns cometidos por iniciantes. Compartilhe para sua referência. O resumo específico é o seguinte:
1. Ao mesmo tempo que a declaração de função, o mecanismo JS também define uma variável com o mesmo nome que o nome da função. Quando chamamos essa função, estamos realmente usando essa variável, e ela pode ser chamada antes da declaração da função, por exemplo
foo (); // Uma variável de função é realmente usada aqui function foo () {alert ('hello'); }2. Expressão da função, neste momento, a função anônima é atribuída a uma variável, que precisa ser usada após a definição, por exemplo
foo (); // é relatado um erro, indefinido var foo = function () {alert ('hello'); }3. Expressão da função (com nome da função), esse uso é melhor evitado. Neste momento, o nome da função está disponível apenas internamente em navegadores que não são de AUs, por exemplo
bar (5); // um erro é relatado, indefinido var bar = função foo (n) {if (n == 1) retornar 1; caso contrário, retorne n * foo (n - 1); } foo (5); // não é relatado o erro do IE, barra indefinida (5); //Correto4. Definição com construtor de funções, esse método é ineficiente. Toda vez que uma função é executada, seu corpo de função será analisado uma vez. Além disso, a função declarada dessa maneira não herdará o escopo do local declarado atual. Ele terá apenas um escopo global por padrão, por exemplo
function foo () {var bar = 'hello'; Função de retorno ('Alert (bar)'); // Um erro é relatado, a barra variável global não é definida} foo () ();Acredito que a descrição deste artigo tenha um certo valor de referência para o aprendizado de todos sobre a programação da Web JavaScript.