¿Qué significa este código JavaScript?

JavaScript puede cambiar las imágenes

Haga clic en la bombilla para encender / apagar la luz.

función changeImage () {
var image = document.getElementById (‘myImage’);
alerta (image.src);
if (image.src == “pic_bulboff.gif”) {
image.src = “pic_bulbon.gif”;
} más {
image.src = “pic_bulboff.gif”;
}
}

Puede ver que la imagen src devuelta es la url absoluta del archivo y no solo el nombre del archivo y la comparación falla.

si quieres compararlo usando el nombre puedes usarlo así

JavaScript puede cambiar las imágenes

Haga clic en la bombilla para encender / apagar la luz.

función changeImage () {
var image = document.getElementById (‘myImage’);
var imgname = image.src.substr (image.src.lastIndexOf (“/”) + 1, image.src.length);
if (imgname == “pic_bulboff.gif”) {
image.src = “pic_bulbon.gif”;
} más {
image.src = “pic_bulboff.gif”;
}
}

Como ha señalado Priyansh Gangwar, el atributo image.src devuelve la URL completa, incluida la ruta y el protocolo. Supongo que esto es lo que hiciste (ten en cuenta las fotos intercambiadas). Porque esto solo explicaría el problema que está recibiendo ::

if (image.src == “pic_bulbon.gif”) {
image.src = “pic_bulboff.gif”;
} más {
image.src = “pic_bulbon.gif”;
}

La primera vez que hizo clic en la imagen con este código, naturalmente, la fuente de la imagen no pudo coincidir porque devolvió la URL completa y aquí la está haciendo coincidir solo con la cadena del nombre de archivo. Esto configuró image.src en bulbon y viste esa imagen. Pero la próxima vez que haga clic en esto, seguirá configurando la imagen en bulbo y, por lo tanto, no verá un cambio.

No funciona porque image.src no es igual a “pic_bulbon.gif”

Estos dos no son iguales porque cuando usas image.src te da un valor como este:
archivo: /// C: /Users/Priyansh/Desktop/test/pic_bulboff.gif
y esto obviamente no es igual a “pic_bulbon.gif”