Actualmente estoy leyendo este jquery masking plugin para tratar de entender cómo funciona, y en numerosos lugares el autor llama a la función slice()
sin pasarle ningún argumento. Por ejemplo, aquí la variable _buffer
es slice()
d, y _buffer.slice()
y _buffer
parecen tener los mismos valores.Usando el método Javascript slice() sin argumentos
¿Hay alguna razón para hacer esto o el autor está haciendo el código más complicado de lo que debería ser?
//functionality fn
function unmaskedvalue($input, skipDatepickerCheck) {
var input = $input[0];
if (tests && (skipDatepickerCheck === true || !$input.hasClass('hasDatepicker'))) {
var buffer = _buffer.slice();
checkVal(input, buffer);
return $.map(buffer, function(element, index) {
return isMask(index) && element != getBufferElement(_buffer.slice(), index) ? element : null; }).join('');
}
else {
return input._valueGet();
}
}
Ningún programador competente alguna vez haría el código más complicado de lo que debe ser. – alex
Es necesario. El método 'slice' se usa al principio de la función para hacer una copia de seguridad de los elementos originales de la matriz antes de ser modificado por la función, de esta manera el autor tiene acceso a las posiciones, claves y valores de la matriz original incluso después de editar el archivo formación. Esto es indispensable cuando se hace una interfaz de manipulación de cadenas responsable, como su plugin de ejemplo. Complementando el comentario de @ alex, si está allí, hay una razón para ello. Ctrl + F la fuente y busca dónde se accede más adelante si necesitas una mejor comprensión. –
'// funcionalidad fn'? – Ben