[quote=faeldix][quote=faeldix]vi esse codigo no video: http://www.youtube.com/watch?v=Mauiqv-jC-U
porem nao entendi como a funcao que ele criou funciona… pra que vc nao precise ver toda o video eu vou copiar aqui:
[code]var frutas = [‘abaxaxi’,‘melao’,‘bacuri’];
function todos(elem,ind,obj){
return (typeof elem == ‘string’);
}
alert(frutas.every(todos)); [/code][/quote]
Primeiro:
Ele utilizou a funcao todos() sem usar o ‘()’ segundo sao necessario 3 parametros… ME PARECE que ele so usa um… como funciona essa funcao every()?[/quote]
Vamos lá, em javascript você pode usar funções como parâmetro de outras funções.
Na verdade, funções podem ser tratados como outros objetos.
Por isso pode fazer coisas assim:
function umaFuncaoNormal() {
alert('teste');
}
var f = umaFuncaoNormal; //associo a f a função umaFuncaoNormal
f(); // aqui é equivalente a chamar umaFuncaoNormal
function recebendoFuncaoComoParametro( algumaFuncao ) { //essa funcao recebe outra funcao como parametro ...
algumaFuncao(); algumaFuncao(); // ... e aqui ela executa a função que recebeu 2x;
}
recebendoFuncaoComoParametro( f ); // aqui ela vai chamar aquele alert 2x
Voltando ao seu código, quando ele usa todos sem (), ele não está executando a função, apenas passando como parâmetro.
A função every é aplicada sobre um array.
Para cada elemento do array, ela usará a função que passou como parâmetro (todos).
Se para todos elementos, essa função retornar true, a função every retorna true.
Se para algum elemento retornar false, ela nem processa o resto do array e retorna false.
Em resumo, você pode ler seu código como: Se todos elementos do array for do tipo string, every retornará true.