2012-07-27 17 views
6

ich so JavaScript-Code haben =>anonyme Funktion kehrt nicht immer einen Wert

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

dieses Skript funktioniert, aber nur gibt mir Benachrichtigung über strenge Warnung dass anonyme Funktion nicht immer einen Wert zurück

Ich bin interessiert, was das bedeutet, wie kann ich das verhindern und wird es jedes Problem provozieren? Bitte irgendwelche Ideen? Danke :)

Antwort

8

Es ist nicht wegen der anonymen Funktion, es ist, weil die else mit dem return redundant ist. Sie brauchen es nicht, da die Funktion zurückkehrt, wenn die if-Anweisung nicht zutrifft, wird die Standardmeldung return ausgeführt.

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

Edit:

Als Nebel die dies noch kürzer gemacht werden kann:

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

'Rückkehr bestätigen zu helfen („Sind Sie sicher?“);' Wird die gleiche Wirkung haben, nicht wahr? – nebulae

+0

Ja wird es, wollte nur warum die Warnung zeigen. – elclanrs

+0

so ist es warnen, denn sonst "Rückkehr" ist nicht üblich, ja? – tnanoba

6

Tatsächlich ist die strict warning Sie wegen strict mode in ihrem Skript aktiviert bekommen, aber wenn " Verwenden Sie strikt "wird nicht in Ihrem Skript verwendet, dann denke ich, wie Sie im Kommentar gesagt, dass Sie Komodo IDE und höchstwahrscheinlich Sie verwenden haben Firefox Extension for Debugging installiert, das benötigt wird, um die browserseitige Komponente des JavaScript-Debuggens zu unterstützen.

Wenn ja, dann hat es einige Einstellungen, die Sie aktivieren oder deaktivieren können. Um strict mode warnings zu deaktivieren gehen Sie einfach zu Bearbeiten Sie Menü> Einstellungen> Javascript (aus der Kategorie) und deaktivieren Sie die Enable Strict Warning Nachrichten, das ist es. Aber mit strict mode ist eine gute Programmierpraxis. Unten ist ein Screenshot Sie

enter image description here

+2

Während die Namen ein bisschen verwirrend sind Komodos "strikte Warnmeldungen" haben keine Verbindung zum strikten Modus. Sie sind zwei verschiedene Dinge. Der strikte Modus ändert die Semantik Ihres Codes. Komodos strenge Warnungen sind einfach zusätzliche Warnungen über solche Dinge; Diese Warnungen können für jeden Code gelten, unabhängig davon, ob der strikte Modus verwendet wird oder nicht. –