关于函数的Javascript问题 - IIFE

Javascript Questions on the function - IIFE

本文关键字:Javascript 问题 IIFE 于函数 函数      更新时间:2023-09-26

我被要求问另一个问题并将其链接到这个线程。如何在触控 UI 中添加必填下拉字段

我的问题是:有人可以告诉我JavaScript函数的终点线在做什么吗?

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

是某种命名空间。

为了您的参考,我附加了Javascript代码。

(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);

这就是我们所说的自调用函数:

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

和那些("文件,花岗岩...等(是传递给同一函数的参数。

最后一行是将参数传递给 IIFE(立即调用的函数表达式(。您可以在此处了解更多信息

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

将参数传递给函数,将document定义为documentGranite.$定义为$Granite.author定义为函数表达式中的ns

(function (document, $, ns) {

例如,

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>