jquery的闭包(理解执行函数)

在前端进行元素集操作时肯定会有each操作
但是each操作的动作都会在所有所有元素遍历完后才会进行生效,故如果需要在遍历元素时就要使其操作生效的话,就需要在each元素时进行立即执行函数进行调用

以下是jquery的demo代码(一个html中有多个img元素,对img元素的边框进行设置):

$(document).ready(function(){
    $("img").each(function(index){   //选择所有的img元素集合进行遍历
        //(function(){xxxxxxx})()使用此定义立即执行函数,其实就是在这里进行了函数的直接调用
        (funciton(m){
            setTimeout(function(){   //这里是为了更好的查看结果,所谓对每隔1s进行元素的改变
                 $("img").eq(m).css("border","solid 2px yellow");  //使用元素过滤器根据元素的index进行定位来依次设置元素的css属性               
            }, 1000*(m+1));        //用于jquery中这里的的不是间隔时间,而是经历的总时间,所以如果是间隔1s的话,第二个元素就要等待2s,以此类推(且这里的index是从0开始的)
        })(index);     //此index是给立即执行函数的实参,里面的function中的m为函数的形参(把index传递给里面的function)
    
    });
});

原文地址:http://blog.51cto.com/smly1989/2057730

时间: 2024-10-04 20:54:42

jquery的闭包(理解执行函数)的相关文章

jquery每两秒执行函数

$(function () { setTimeout("Check()",2000); }); 原文地址:https://www.cnblogs.com/zhangyouwu/p/12014106.html

js中(function(){…})()立即执行函数写法理解

javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此.要理解立即执行函数,需要先理解一些函数的基本概念.

深入理解javascript中的立即执行函数(function(){…})()

这篇文章主要介绍了深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是用(function(){-})()包住业务代码,使用jquery时比较常见,需要的朋友可以参考下http://www.jb51.net/article/50967.htm javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ( function()

JS函数的应用 --- 立即执行函数、全局污染、闭包、沙箱、递归

一.立即执行函数 --- IIFE 立即执行函数的集中表现形式: 立即执行函数的特点: 二.JS 全局污染 为什么会造成全局污染? JS 没有块级作用域,在函数外定义的变量,均为全局变量: 全局变量过多会削弱程序的灵活性,增大了模块之间的耦合度,多人协作开发会导致变量冲突,造成环境污染. 耦合度:即模块之间的依赖关系:控制关系.调用关系.数据传递关系: 划分模块准则:高内聚低耦合 如何解决全局污染? 1. 命名空间 2. 立即执行函数(里面创建的变量,为局部变量) (function(){})(

【转】深入理解javascript中的立即执行函数(function(){…})()

javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此.要理解立即执行函数,需要先理解一些函数的基本概念.

IIFE-js中(function(){…})()立即执行函数写法理解

介绍IIFE IIFE的性能 使用IIFE的好处 IIFE最佳实践 jQuery优化 在Bootstrap源码(具体请看<Bootstrap源码解析>)和其他jQuery插件经常看到如下的写法: Js代码   +function ($) { }(window.jQuery); 这种写法称为: IIFE (Imdiately Invoked Function Expression 立即执行的函数表达式). 一步步来分析这段代码. 先弄清函数表达式(function expression)和 函数

javascript闭包和立即执行函数的作用

一.闭包--closure 先看一个闭包的例子.我们想实现一个计数器,最简单的方法就是定义一个全局变量,计数的时候将其加1.但是全局变量有风险,哪里都有可能不小心改掉它.那局部变量呢, 它只在函数内部有效,函数调用完后它就没了,而且全局没法使用.那我们用想让计数器全局使用,又不想让这个变量被随便修改怎么办.这就需要闭包了: function count(){ var i=0; return function () { return ++i; } } 这个例子实现了一个简单的计数器.函数"coun

JavaScript初阶(三)--------函数、闭包、立即执行函数

函数 有时候我们的代码重复了很多次,编程里面称为耦合,但是编程要讲究高内聚,弱耦合.为了将重复多的聚在一起就出现了函数. 定义 函数基本要素:函数声明(function),函数名称,参数(形参,实参),返回值. 1.首先函数命名方式采用小驼峰式写法,即第一个单词小写,后面的单词首字母大写,如 function oneNumber(){} 2.函数表达方式里面有函数表达式,匿名函数表达式 var a = function lala() {}//函数表达式 var b = function () {

JavaScript中的匿名函数、立即执行函数和闭包

匿名函数是没有函数名的,不能单独使用: 立即执行函数是基于匿名函数实现的,也没有函数名,会在定义后立即执行: 闭包是有权访问另一个函数作用域中的变量的函数.匿名函数.立即执行函数只要满足 有权访问另一个函数作用域中的变量 这一个条件,就成了闭包. 匿名函数 匿名函数:没有函数名的函数 匿名函数不能单独定义与使用 function foo() { console.log('普通函数'); } // 去掉函数名 foo function () { // SyntaxError: Function s