Preguntas de entrevista
uno,
La copia del código es la siguiente:
Defina tal función
Función Repet (func, Times, Wait) {
}
Esta función puede devolver una nueva función, por ejemplo
var repetidofun = repetir (alerta, 10, 5000)
Llame a esto repetido ("hellworld")
Alertará a Helloworld diez veces, cada intervalo de tiempo es de 5 segundos
dos,
La copia del código es la siguiente:
Escribir una función stringconcat, que requiere
VAR result1 = StringConcat ("A", "B") result1 = "A+B"
var stringConcatWithPrefix = StringConcat.Prefix ("HellWorld");
var result2 = StringConcatWithPrefix ("A", "B") result2 = "Hellworld+A+B"
Solución de guarniciones
Estas dos preguntas prueban los cierres. Sin decir muchas tonterías, solo ingrese el código.
La copia del código es la siguiente:
/**
* Pregunta 1
* @param func
* @param tiempos
* @param espera
* @returns {repiteimpl}
*/
Función Repet (func, Times, Wait) {
// No se utilizan funciones anónimas para facilitar la depuración
function repetyimpl () {
mango var,
_argumentos = argumentos,
i = 0;
Handle = setInterval (function () {
i = i + 1;
// Cancelar temporizador cuando el número especificado de veces
if (i === veces) {
ClearInterval (mango);
devolver;
}
FunC.Apply (nulo, _argumentos);
},esperar);
}
devolver repeticiones de repetición;
}
// Casos de prueba
var repetirfun = repetir (alerta, 4, 3000);
repetirfun ("hellworld");
/**
* Pregunta 2
* @returns {string}
*/
función stringconcat () {
resultado var = [];
stringconcat.merge.call (nulo, resultado, argumentos);
return result.Join ("+");
}
stringconcat.prefix = function () {
var _argumentos = [],
_THIS = esto;
_this.merge.call (nulo, _argumentos, argumentos);
Función de retorno () {
var _args = _arGuments.slice (0);
_this.merge.call (nulo, _args, argumentos);
return _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 prueba
Var result1 = StringConcat ("A", "B"); // result1 = "A+B"
var result3 = stringConcat ("c", "d"); // result1 = "A+B"
var stringConcatWithPrefix = StringConcat.Prefix ("HellWorld");
var stringConcatWithPrefix1 = StringConcat.Prefix ("HellWorld1");
var result2 = StringConcatWithPrefix ("A", "B"); // result2 = "Hellworld+A+B"
var result4 = StringConcatWithPrefix1 ("C", "d"); // result2 = "Hellworld+A+B"
alerta (resultado1);
alerta (resultado2);
alerta (resultado3);
alerta (resultado4);