2012-07-27 19 views
6

Tengo código JavaScript como esto =>función anónima no siempre devuelve un valor

(function(){ 
    document.getElementById("element").onclick = function(){ 
     var r = confirm("Are you sure ?"); 
     if (r){ 
      return true; 
     } else { 
      return false; 
     } 
    } 
})(); 

funcionamiento de este comando, pero sólo me da notificaciones sobre Advertencia estricto que función anónima no lo hace siempre devuelve un valor

Me interesa lo que eso significa, ¿cómo puedo evitarlo y provocará algún problema? Por favor alguna idea? gracias :)

Respuesta

8

No es debido a la función anónima, es porque el else con ese return es redundante. No lo necesita porque el retorno sale de la función, si la declaración if no es verdadera, se ejecutará el valor predeterminado return.

(function(){ 
    document.getElementById("element").onclick = function(){ 
     var r = confirm("Are you sure ?"); 
     if (r){ 
      return true; 
     } 
     return false; 
    } 
})(); 

Editar:

Como nebulosas dijo que esto se puede hacer aún más corto:

(function(){ 
    document.getElementById("element").onclick = function(){ 
     return confirm("Are you sure ?"); 
    } 
})(); 
+0

'confirman retorno ("¿Está seguro?");' Tendrá el mismo efecto, no? – nebulae

+0

Sí, lo hará, solo quería mostrar por qué la advertencia. – elclanrs

+0

por lo que es una advertencia porque en otro "retorno" no es común, ¿sí? – tnanoba

6

En realidad, el strict warning que está recibiendo debido strict mode habilitada en que la escritura pero si " use strict "no está siendo utilizado en su script, entonces creo, como dijo en el comentario que está usando Komodo IDE y lo más probable es que usted tiene instalado Firefox Extension for Debugging que es necesario para admitir el componente del lado del navegador de la depuración de JavaScript.

Si es así, tiene algunas configuraciones que puede activar o desactivar. Para deshabilitar strict mode warnings solo vaya a Menú Edición> Preferencias> Javascript (de la categoría) y desmarque Habilitar mensajes de advertencia estrictos, eso es todo. Pero usar strict mode es una buena práctica de programación. A continuación se muestra una captura de pantalla para ayudarle a

enter image description here

+2

Aunque los nombres son un poco confusos , Los "mensajes de advertencia estrictos" de Komodo no tienen conexión con el modo estricto. Son dos cosas diferentes. El modo estricto realmente cambia la semántica de tu código. Las advertencias estrictas de Komodo son simplemente advertencias extra sobre cosas como esta; estas advertencias pueden aplicarse a cualquier código, ya sea que use el modo estricto o no. –

Cuestiones relacionadas