当前位置: 首页 > 面试题库 >

是什么(function($){})(jQuery); 意思?

凌朗
2023-03-14
问题内容

我刚刚开始编写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编写的插件。到目前为止,Type
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的扩展原型采用一个对象来保存您的插件名称和功能,并将其添加到您的插件库中。



 类似资料:
  • 问题内容: 有时我会创建一个函数,稍后再调用该函数。 例: 不知何故,某些功能无法调用。我必须在内部调用这些函数: 做什么和意味着,什么是这些区别/目的是什么? 问题答案: 只是jQuery的简写 它的设计目的(除其他事项外)是确保一旦页面的所有DOM元素准备就绪即可使用您的函数。 但是,我不认为这是您遇到的问题-您能否弄清楚“以某种方式,某些函数无法调用,而我必须在内部调用这些函数”的意思吗?也

  • 问题内容: 8个月前关闭。 在jquery中,什么意思和何时使用? 问题答案: JavaScript中的代码非常特殊且功能强大。这可能意味着任何事情。 首先让我们看一下jQuery对jQuery的使用,然后再在JavaScript中更广泛地讨论它。 特别是在jQuery中 在用jQuery编写的代码中, 通常 指的是作为要调用的函数的主题的DOM元素(例如,在事件回调中)。 例如jQuery的事件

  • 问题内容: 这是代码: 但是当我将“ #round”更改为“ this”时。它不会工作。为什么?(实际上是可行的,但是当我将它们放入setInterval()时,它将无法工作) 更改为“ this”,将无法使用。 问题答案: 是对调用当前函数的成员的引用… 那么您可以将其包装在jquery函数中以选择它,就像选择其他选择器一样。 因此调用匿名函数,这样它就不会被可引用成员调用,因此它默认为该对象。

  • 本文向大家介绍JQuery中$(document)是什么意思有什么作用,包括了JQuery中$(document)是什么意思有什么作用的使用技巧和注意事项,需要的朋友参考一下 首先我解释一下jQuery jQuery有一个用来作为DOM快速载入javascript的得心应手的小函数,那就是ready… 他在页面加载完成之前执行。 为什么不用window.onload(),因为window.onlo

  • 问题内容: 我是JavaScript / jQuery的新手,我一直在学习如何制作函数。方括号中带有(e)的功能很多。让我告诉你我的意思: 似乎总是该函数甚至不使用(e)的值,那么为什么它经常出现呢? 问题答案: 是将传递给事件处理程序的对象的简短var引用。 事件对象本质上具有许多可以在事件处理程序中使用的有趣的方法和属性。 在示例中,您发布的是一个点击处理程序,它是一个 DEMO-鼠标事件,D

  • 问题内容: 在java int,float等中,是原始类型。如果我们需要将其与泛型一起使用,则使用包装器类。但是,以下声明在Java中仍然有效, 即使它是原始类型,如何调用? 问题答案: 原始对象成为对象 对于基元,在相应的包装器类中有一些名为TYPE的常量的Class对象可用-即,int.class更改为java.lang.Integer.TYPE。对于其他类型,编译器在正在编译的类中创建一个私