Olá Daniel! Tudo bom?
A explicação pra sua dúvida começa assim: algumas linguagens aceitam valores padrão e parâmetros opcionais. O que eu quero dizer com isso?
Em Java, por exemplo, quando você cria um método que recebe dois parâmetros e um deles é opcional (tem um valor padrão), o mais comum é criar uma sobrecarga que passa os valores padrão automaticamente, assim:
void metodo(String param1, String param2opcional) {
//...
}
void metodo(String param1) {
metodo(param1, "valor padrão");
/* vai chamar o método de cima que recebe
dois parâmetros */
}
Linguagens que aceitam valor padrão nos métodos fazem isso "automaticamente". Como assim? O método module
do angular provavelmente tem a seguinte assinatura:
function module (name, dependencies = []) {
//...
}
Repare que ao declarar o parâmetro dependencies
, o método já atribui o valor []
a ele, ou seja, o valor padrão é ser um vetor vazio. Isso faz com que você possa passar esse parâmetro opcionalmente:
angular.module('Estoque', [])
// igual a
angular.module('Estoque')
Na primeira opção, o Javascript sabe que você enviou um vetor e "sobrescreve" o valor do parâmetro com aquele que você passou. No caso, um vetor vazio. Pra ficar mais claro, vamos criar nosso próprio método:
function imprime(nome, frase = "Bons estudos!") {
console.log("Olá, " + nome + ". " + frase);
}
Quais você acha que seriam as saídas das duas chamadas a seguir?
imprime("Marco", "Você quer café?");
imprime("Daniel");
A primeira chamada imprime Olá, Marco. Você quer café?
enquanto a segunda imprime Olá, Daniel. Bons estudos!
.
Isso por que na primeira chamada você está "sobrescrevendo" o valor padrão enquanto na segunda você aceita que o padrão será usado. O angular usa do mesmo artifício pra agilizar o desenvolvimento, permitindo ocultar a passagem do vetor vazio.
Espero ter ajudado!
Ah, quando seu problema estiver resolvido lembre-se de marcar a dúvida como solucionada! Assim outros alunos com a mesma questão encontram a resposta mais rapidamente e podem também seguir com seus estudos =)
Um abraço!
Marco