2016-05-06 15 views
0

Ich wurde gebeten, eine andere Frage zu stellen und sie mit diesem Thread zu verknüpfen. How add mandatory dropdown field in Touch UIJavascript Fragen zur Funktion - IIFE

Meine Frage ist was: kann mir jemand sagen, was ist die Endlinie der Javascript-Funktion tut.

})(document, Granite.$, Granite.author); 

ist es eine Art Namespacing.

Für Ihre Referenz füge ich den Javascript-Code an.

(function (document, $, ns) { 
    "use strict"; 

    $(document).on("click", ".cq-dialog-submit", function (e) { 
     e.stopPropagation(); 
     e.preventDefault(); 

     var $form = $(this).closest("form.foundation-form"), 
      title = $form.find("[name='authoringMode']").val(), 
      message, clazz = "coral-Button "; 

     if(!title){ 
      ns.ui.helpers.prompt({ 
      title: Granite.I18n.get("Invalid Input"), 
      message: "Please Check Values", 
       actions: [{ 
        id: "CANCEL", 
        text: "CANCEL", 
        className: "coral-Button" 
       } 
      ], 
      callback: function (actionId) { 
       if (actionId === "CANCEL") { 
       } 
      } 
     }); 
     }else{ 
       $form.submit(); 
     } 
    }); 
})(document, Granite.$, Granite.author); 
+1

Bitte verbessern die Betreffzeile. Wie geschrieben wird es niemanden in der Zukunft mit dem gleichen Problem helfen, diese Frage zu finden. –

Antwort

2

lernen Dies ist, was wir sonst eine Selbst Aufruf rufen Funktion:

(function (document, $, ns) { ... 
})(document, Granite.$, Granite.author); 

und jene ("Dokument, Granit ... etc) sind Argumente zu eben dieser Funktion übergeben werden.

1

Die letzte Zeile übergibt Argumente an den IIFE (sofort aufgerufenen Funktionsausdruck). Sie können mehr here

+0

Danke an alle macht Sinn. – Rahul

0
})(document, Granite.$, Granite.author); 

gibt Parameter, funktionieren als documentdocument, Granite.$ als $ und Granite.author als ns innerhalb der Funktion zu definieren expressio n bei

(function (document, $, ns) { 

z.B.

var obj = { 
 
    $:jQuery, 
 
    author:"abc" 
 
}; 
 

 
(function(document, $, ns) { 
 
    "use strict"; 
 
    
 
    console.log($, ns) 
 
    
 
}(document, obj.$, obj.author))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script>

+0

erklärt nicht, warum es so gemacht wird und zeigt nicht, wo es gelernt werden kann – Yerken

+0

@Yerken _ "erklärt nicht, warum es so gemacht wird" _? Siehe post at _ "übergibt Parameter an Funktion, definiert' Dokument' als 'Dokument',' Granit. $ 'Als' $ 'und' Granite.author' als 'ns' innerhalb des Funktionsausdrucks" _ Der Prozess übergibt Parameter an Funktion , wie auf der Post beschrieben. Was meinst du mit _ "noch zeigt, wo es gelernt werden kann" _? stacksnippets zeigt Beispiel 'js' mit demselben Muster, wie es bei der ursprünglichen Frage erscheint. – guest271314

+0

danke @ guest271314 und Yerken – Rahul