Perguntas da entrevista
um,
A cópia do código é a seguinte:
Por favor, defina tal função
Função Repita (func, horários, espera) {
}
Esta função pode retornar uma nova função, por exemplo
var repetidofun = repetir (alerta, 10, 5000)
Chame isso de repetido ("Hellworld")
Alertará o helloworld dez vezes, cada intervalo de tempo é de 5 segundos
dois,
A cópia do código é a seguinte:
Escreva uma função StringConcat, que requer
var result1 = stringConcat ("a", "b") resultado1 = "a+b"
var stringConcatWithPrefix = StringConcat.Prefix ("Hellworld");
var result2 = stringConcatWithPrefix ("A", "B") Result2 = "Hellworld+A+B"
Solução de acompanhamentos
Essas duas perguntas testam o fechamento. Sem dizer muita bobagem, basta inserir o código.
A cópia do código é a seguinte:
/**
* Pergunta 1
* @param func
* @Param Times
* @param espera
* @returns {repetição}
*/
Função Repita (func, horários, espera) {
// Nenhuma função anônima é usada para facilitar a depuração
função repeatImpl () {
alça de var,
_ Argumentos = argumentos,
i = 0;
handle = setInterval (function () {
i = i + 1;
// Cancelar o temporizador quando o número especificado de vezes
if (i === Times) {
ClearInterval (alça);
retornar;
}
func.apply (null, _arguments);
},espere);
}
retornar repeteImpl;
}
// casos de teste
var repentfun = repetir (alerta, 4, 3000);
repetição ("Hellworld");
/**
* Pergunta 2
* @returns {string}
*/
function stringConcat () {
var resultado = [];
stringconcat.merge.call (null, resultado, argumentos);
return resultado.Join ("+");
}
StringConcat.Prefix = function () {
var _arguments = [],
_This = this;
_This.Merge.Call (NULL, _GUMMENTS, Argumentos);
Return function () {
var _args = _arguments.slice (0);
_This.Merge.Call (null, _args, argumentos);
retornar _This.Apply (null, _args);
};
};
StringConcat.Merge = function (Array, Arraylike) {
var i = 0;
para (i = 0; i <Arraylike.length; i ++) {
Array.push (matriz [i]);
}
}
// casos de teste
var result1 = stringConcat ("a", "b"); // resultado1 = "a+b"
var result3 = stringConcat ("c", "d"); // resultado1 = "a+b"
var stringConcatWithPrefix = StringConcat.Prefix ("Hellworld");
var stringConcatWithPrefix1 = StringConcat.Prefix ("Hellworld1");
var result2 = stringConCatWithPrefix ("A", "B"); // resultado2 = "Hellworld+A+B"
var result4 = stringConCatWithPrefix1 ("C", "D"); // resultado2 = "Hellworld+A+B"
alerta (resultado1);
alerta (resultado2);
alerta (resultado3);
alerta (resultado4);