(函数($){})(JQuery)意味着什么?

(函数($){})(JQuery)意味着什么?

我刚开始编写jQuery插件。我写了三个小插件,但我只是简单地将这一行复制到我的所有插件中,而实际上并不知道它意味着什么。谁能告诉我更多关于这些的事吗?也许有一天,在编写框架时,解释会派上用场:)

这是干什么用的?(我知道它以某种方式扩展了jQuery,但对此还有什么有趣的了解吗?)

(function($) {})(jQuery);

以下两种编写插件的方法有什么区别:

第1类:

(function($) {
    $.fn.jPluginName = {

        },

        $.fn.jPluginName.defaults = {

        }})(jQuery);

第2类:

(function($) {
    $.jPluginName = {

        }})(jQuery);

第3类:

(function($){

    //Attach this new method to jQuery
    $.fn.extend({ 

        var defaults = {  
        }  

        var options =  $.extend(defaults, options);  

        //This is where you write your plugin's name
        pluginname: function() {

            //Iterate over the current set of matched elements
            return this.each(function() {

                //code to be inserted here

            });
        }
    }); })(jQuery);

我可能离这里很远,也许所有的意思都是一样的。我很困惑。在某些情况下,这,这个似乎没有在我用Type 1编写的插件中工作。到目前为止,类型3对我来说似乎是最优雅的,但我也想知道其他的。


阿波罗的战车
浏览 855回答 3
3回答

喵喔喔

首先,代码块看起来像(function(){})()只是执行到位的函数。让我们把它分解一下。1. (2.    function(){}3. )4. ()第2行是一个简单的函数,用圆括号包装以告诉运行时将函数返回到父作用域,一旦返回函数,则使用第4行执行该函数,也许阅读这些步骤会有所帮助。1. function(){ .. }2. (1)3. 2()您可以看到,1是声明,2是返回函数,3是执行函数。一个如何使用它的例子。(function(doc){    doc.location = '/';})(document);//This is passed into the function above至于有关插件的其他问题:类型1:这实际上不是一个插件,它是一个作为函数传递的对象,因为插件往往是函数。类型2:这也不是插件,因为它没有扩展$.fn对象。这只是jQuery核心的一个扩展,尽管结果是一样的。这是如果您想要添加遍历函数,如toArray等。类型3:这是添加插件的最佳方法,jQuery的扩展原型接受一个保存插件名称和函数的对象,并将其添加到插件库中。

动漫人物

在最基本的层次上,某种形式(function(){...})()是立即执行的函数文字。这意味着您已经定义了一个函数,并立即调用它。此表单对于信息隐藏和封装非常有用,因为您在该函数中定义的任何内容都是该函数的本地函数,并且无法从外部世界访问(除非您特别公开它-通常是通过返回的对象文字)。这种基本形式的一个变体是在jQuery插件中看到的(或者在一般的模块模式中)。因此:(function($) {   ...})(jQuery);这意味着您将传递一个引用到实际jQuery对象,但它被称为$在函数文字的范围内。类型1并不是真正的插件。您只需将一个对象文本赋值给jQuery.fn..通常,您将一个函数分配给jQuery.fn因为插件通常只是函数。类型2类似于类型1,这里并不是真正创建插件。您只需将一个对象文字添加到jQuery.fn.类型3是一个插件,但它不是最好或最简单的方法来创建一个。要了解更多这方面的情况,请看一下类似的问题和回答..还有,本页将详细介绍有关编写插件的内容。

FFIVE

一点帮助:// an anonymous function  (function () { console.log('allo') });// a self invoked anonymous function(function () { console.log('allo') })();  // a self invoked anonymous function with a parameter called "$"  var jQuery = 'I\'m not jQuery.';(function ($) { console.log($) })(jQuery);
打开App,查看更多内容
随时随地看视频慕课网APP