jQuery中(function(){})()执行顺序的理解

jQuery中 (function(){})() 这种写法是一种立即执行函数表达式(Immediately-Invoked Function Expression,缩写为IIFE),通常用于避免全局变量的污染和函数命名冲突等问题。

该函数表达式在加载 jQuery 库时就会立即执行,而不需要等到 DOM 加载完毕。这个函数可以用来安装 jQuery 插件、定义私有变量、赋值给命名空间等操作。

在解释函数执行顺序之前,先来讲一下IIFE的基本语法:

(function(arg1, arg2,...){
    // 函数体
}(arg1_value, arg2_value,...));

函数体内的代码在定义的时候就被执行了,并且接受外部参数 arg1, arg2, ...。在定义后直接给 IIFE 传入参数 arg1_value, arg2_value, ... 可以直接调用函数体内的代码。这样做的好处也在于保护变量不被污染。

在jQuery中通过IIFE来扩展jQuery库中的函数,例如下面的代码给 jQuery 添加了一个新函数:

(function($){
    $.fn.redColor = function(){
        this.css({'color': 'red'})
    }
})(jQuery);

在这个示例中,函数接收的参数名是$,表示我们可以在代码中使用$作为 jQuery 的别名。通过定义 $.fn.redColor 函数,为所有 jQuery 对象添加了一个名为 redColor 的方法,这个方法可以使调用它的 jQuery 对象的字体变为红色。

至于IIFE函数执行顺序,其实是没有明确的规定的。但是在大部分情况下,jQuery的IIFE函数会在DOM树构建完成后,即document对象完全创建后再执行。

再看一个示例:

<script src="jquery.js"></script>
<script>
(function($){
    console.log("step1");
    $(document).ready(function(){
        console.log("step2");
    });
    console.log("step3");
})(jQuery);
</script>

在这个示例中,IIFE 函数包含了3个console语句,分别输出“step1”,“step3”和“step2”。这表明在执行IIFE时,在它内部包含的文本不会被阻塞,在 console 描述的仅仅是执行顺序而已。

当页面加载jQuery库的时候,它会将 jQuery 和 $ 对象附加在全局对象 window 上。在 IIFE 函数内部,$ 参数可以保证是 jQuery 对象,以此避免了 jQuery 与其他库发生命名冲突。

总之,IIFE 函数是一种非常强大的编程技巧,充分体现了 JavaScript 强大的灵活性。在 jQuery 库的应用中,IIFE 函数常常用于在 jQuery 对象上扩展新的函数和方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery中(function(){})()执行顺序的理解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQWidgets jqxValidator hideHint()方法

    jQWidgets jqxValidator hideHint()方法 jqxValidator是jQWidgets提供的一款表单验证插件,hideHint()方法是jqxValidator的一个实例方法,可用于隐藏验证提示信息。 hideHint()方法的语法 hideHint(ruleName: string); hideHint()方法的参数 参数名称…

    jquery 2023年5月12日
    00
  • jQWidgets jqxNavBar选择属性

    以下是关于 jQWidgets jqxNavBar 组件中选择属性的详细攻略。 jQWidgets jqxNavBar 选择属性 jQWidgets jqxNavBar 组件的选择属性用于设置导航栏中的项是否可以被选择。该属性可以是布尔值,可选值为 true 或 false。 语法 $(‘#navbar’).jqxNavBar({ selection: va…

    jquery 2023年5月12日
    00
  • jQuery实现聊天对话框

    下面我将详细讲解“jQuery实现聊天对话框”的完整攻略。 1. 设计 HTML 结构 首先,需要设计 HTML 结构,用于实现聊天对话框的布局。一个简单的聊天对话框的 HTML 结构如下: <div class="chat"> <div class="chat-history"></di…

    jquery 2023年5月28日
    00
  • 如何使用jQuery设计图片滑块

    使用jQuery设计图片滑块的攻略如下: 1. 引入jQuery库 首先需要在HTML文件的<head>标签中引入jQuery库。可以直接使用CDN链接,也可以下载后本地引入。 <head> <script src="https://cdn.jsdelivr.net/npm/jquery"></s…

    jquery 2023年5月12日
    00
  • jQuery 1.9.1源码分析系列(十五)之动画处理

    jQuery 1.9.1源码分析系列(十五)之动画处理 简介 本文主要介绍jQuery中动画处理的实现方式,包括动画队列、动画的延迟处理、动画的方向控制、动画完成后的回调函数等。 动画队列 jQuery中的动画效果是基于浏览器的定时器机制实现的。当我们多次调用jQuery的动画效果时,这些动画会被依次添加到动画队列中,从而实现了动画的连续播放效果。 例如下面…

    jquery 2023年5月27日
    00
  • jQuery UI滑块 enable()方法

    以下是关于 jQuery UI 滑块 enable() 方法的详细攻略: jQuery UI 滑块 enable() 方法 enable() 方法用于启用一个已经被禁用的 jQuery UI Slider 对象。方法会启用滑块的拖动和点击事件,并移禁用状态的样式。 语法 $( ".selector" ).slider( "ena…

    jquery 2023年5月11日
    00
  • jQuery中add()方法用法实例

    jQuery中add()方法用法实例 add() 方法在原始选定的元素集合中添加一个或多个元素,并返回新的集合。 语法 $(selector).add(content,context) 参数 selector: 要添加的元素或者元素集合。 content: 要添加的元素或者元素集合。 context(可选): 一个DOM元素,文档或jQuery对象,用于计算…

    jquery 2023年5月28日
    00
  • 利用Python 爬取股票实时数据详情

    针对“利用Python 爬取股票实时数据”的完整攻略,我提供以下步骤: 步骤1:确定爬取的数据来源 我们爬取股票实时数据的来源一般有两种方式:从股票交易所的网站获取和从第三方财经网站获取。这里以第三方财经网站为例,常用的财经网站有新浪财经、上海证券报、东方财富等。 步骤2:确定获取数据的方式 在确定好来源之后,我们需要选择获取数据的方式。通常情况下,获取数据…

    jquery 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部