1、(function($) {…})(jQuery);

1)、原理:

这实际上是匿名函数,如下:

function(arg){…}
这就定义了一个匿名函数,参数为arg

而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:
(function(arg){…})(param)
这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数

而(function($){…})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery
相当于funtion output(s){…};output(jQuery);或者var fn=function(s){…};fn(jQuery);

2)、作用(非常有用):

这种写法的最大好处是形成闭包。在(function($) {…})(jQuery)在内部定义的函数和变量只能在此范围内有效。

形成是否函数函数、私有变量的概念。比如:

  1. var i=3;
  2. function init(){
  3. alert("外层init:"+i);
  4. }
  5. (function($) {
  6. var i=2;
  7. function init(){
  8. alert("内层init:"+i);
  9. }
  10. init();
  11. })(jQuery);
  12. init();

执行结果:

内层init:2

外层init:3


2、$(function(){…});   jQuery(function($) {…});  $(document).ready(function(){…}); $().ready(function(){…})

是JQuery的ready()函数的不同写法,表示文档载入完成后执行的函数。

jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详解的更多相关文章

  1. Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解

    简介 最近了解到很多网页开发者对jquery中的 .bind() .live() .delegate() 和 .on() 方法存在很多的疑惑.这些疑惑通常是关于它们之间真正的区别是什么啊,什么时候该使 ...

  2. Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解(转)

    转自:https://www.jb51.net/article/120018.htm

  3. JQuery $(function(){})和$(document).ready(function(){})

    document.ready和onload的区别——JavaScript文档加载完成事件页面加载完成有两种事件一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)二是onload,指 ...

  4. $(function(){})和$(document).ready(function(){})

    document.ready和onload的区别——JavaScript文档加载完成事件 页面加载完成有两种事件 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件) 二是onloa ...

  5. 【JQuery】jQuery(document).ready(function($) { });的几种表示方法及load和ready的区别

    jQuery中处理加载时机的几种方式 第一种: jQuery(document).ready(function() { alert("你好"); }); //或 $(documen ...

  6. jQuery(function(){})和$(function(){ }) 和 $(document).ready(function(){ })关系

    转自:https://www.jianshu.com/p/3b0fe5d07996 $(function(){ })和jQuery(function(){ })都是 $(document).ready ...

  7. $(window).load(function() {})和$(document).ready(function(){})的区别

    JavaScript 中的以下代码 : Window.onload = function (){// 代码 }  等价于  Jquery 代码如下: $(window).load(function ( ...

  8. $(function(){})和$(document).ready(function(){}) 的用法

    当文档载入完毕就执行,以下几种效果是等价的:1. $(function(){ //这个就是jQuery ready()的简写,即下2的简写 // do something }); 2. $(docum ...

  9. document.ready和onload的区别

    转自:http://holysonll.blog.163.com/blog/static/2141390932013411112823855/ document.ready和onload的区别——Ja ...

  10. JQuery排错关于$(document).ready(function(){});

    最近写了好多JQuery.也出了很多问题.不知道怎么回事.程序就不往下执行了.很是郁闷. 查了下资料,这里可能会有以下几种原因:1.js文件的引用路径不正确,特别是使用了命名空间,容易造成路径错误,使 ...

随机推荐

  1. Django组件——分页器和中间件

    分页器 Django内置分页器(paginator) 分页器函数为paginator,里面有几个重要的参数需要我们了解 paginator = Paginator(book_list, 10) #第二 ...

  2. python tuple的函数

    1. len(tuple) 计算元组元素个数 >>> tuple1 = ('Google', 'Runoob', 'Taobao') >>> len(tuple1) ...

  3. centos----------centos下如何安装phpstorm

    1.首先打开centos下的谷歌浏览器,找到phpstorm官网下载linux版本.PhpStorm-2016.3.2.tar.gz 2.然后gunzip PhpStorm-2016.3.2.tar. ...

  4. arithmetic-02

    Java collection API 中实现的表ADT: collection<E>接口实现继承iterable<E>接口,实现iterable接口的类可以使用增强for循环 ...

  5. 将指定世界中的指定位置的Block转化为箱子

    在bukkit中,block可以操作所有的三位像素方块,如果是向对block进一步操作,我们就需要得到BlockState, BlockState表示一个方块的状态,才能够对方块进行位置等状态的操作, ...

  6. HTML 鼠标坐标和元素坐标

    在这一篇文章中,将会介绍鼠标坐标.元素坐标以及鼠标在指定元素内的坐标. 1. 鼠标坐标 在触发鼠标相关事件时(如:click.mousemove),可以通过事件对象获取当前鼠标的坐标. 获取的坐标可分 ...

  7. spring boot + vue + element-ui全栈开发入门——主页面开发

    目的 开发一个后台管理的前端,顶部是标题,左侧是菜单导航栏,中间是要显示的内容.而内容可以是各种图表,也可以是数据列表. 一.准备工作 1..修改App.vue文件 代码如下: <templat ...

  8. xml 和 json 序列化忽略字段

    xml 和 json 序列化忽略字段: @JsonIgnore @XmlTransient

  9. ogg12.2中的新参数 AllowOutputDir

    在一个测试中,通过普通的pump进程将数据写入远端主机,启动pump进程之后进程abended.查看进程日志,提示: 2018-04-07 13:26:21  ERROR   OGG-25127  R ...

  10. jQuery事件绑定与常用事件

    jQuery事件与js类似,只是在名称上将前面的on去掉了,例如jQuery的click.mousedown.keypress事件.jQuery绑定事件有2种方法,下面用最基本的例子做演示. ①直接绑 ...