Muchos desarrolladores desaprueban la práctica de pasar cadenas a setTimeout debido a problemas de rendimiento, posibles riesgos de seguridad y está en desuso estado. Sin embargo, puede haber escenarios raros en los que esta sintaxis podría ser beneficiosa.
La sintaxis tradicional para setTimeout y setInterval implicaba pasar una cadena que representaba el código a ejecutar. Por ejemplo:
setTimeout('doSomething(someVar)', 10000);
Sin embargo, el JavaScript moderno promueve el uso de referencias de funciones:
setTimeout(function() {
doSomething(someVar);
}, 10000);
El debate surge al considerar si existen razones válidas para desviarse de la sintaxis recomendada. Un posible argumento podría ser el deseo de acceder a una función o variable que reside en el ámbito global pero que podría haber sido anulada localmente.
A pesar de este razonamiento, el uso de cadenas en setTimeout se desaconseja encarecidamente. Aún se puede acceder a las variables globales a través de las propiedades del objeto de ventana. Por ejemplo:
setTimeout(window.doSomething(someVar), 10000);
Es probable que se permitan cadenas como argumentos para setTimeout y setInterval arraigada en factores históricos. Las primeras versiones de JavaScript solo admitían cadenas. Agregar la capacidad de pasar referencias de funciones fue una adición posterior. Para garantizar la compatibilidad con versiones anteriores, los navegadores aún permiten la sintaxis de cadena, aunque esté en desuso.
Si bien es técnicamente posible pasar cadenas a setTimeout en ciertos casos, la práctica generalmente no lo es Recomendado debido a la disponibilidad de enfoques alternativos. El uso de referencias de funciones proporciona un rendimiento mejorado, mejora la seguridad y cumple con las pautas de código modernas. Por lo tanto, se debe evitar la sintaxis de cadena obsoleta por motivos de claridad, facilidad de mantenimiento y calidad general del código.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3