jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解
2016-08-09 14:23
537 查看
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)在内部定义的函数和变量只能在此范围内有效。
形成是否函数函数、私有变量的概念。比如:
[javascript] view plain copy
var i=3;
function init(){
alert("外层init:"+i);
}
(function($) {
var i=2;
function init(){
alert("内层init:"+i);
}
init();
})(jQuery);
init();
执行结果:
内层init:2
外层init:3
2、$(function(){…}); jQuery(function($) {…}); $(document).ready(function(){…})
这三个的作用是一样的,本人比较需要用第一种、书写简单。
文档载入完成后执行的函数。
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)在内部定义的函数和变量只能在此范围内有效。
形成是否函数函数、私有变量的概念。比如:
[javascript] view plain copy
var i=3;
function init(){
alert("外层init:"+i);
}
(function($) {
var i=2;
function init(){
alert("内层init:"+i);
}
init();
})(jQuery);
init();
执行结果:
内层init:2
外层init:3
2、$(function(){…}); jQuery(function($) {…}); $(document).ready(function(){…})
这三个的作用是一样的,本人比较需要用第一种、书写简单。
文档载入完成后执行的函数。
相关文章推荐
- jquery 判断文本框为空 或为null 或 过滤空格
- 基于jQuery的AJAX和JSON实现纯html数据模板
- 文章标题
- 欢迎使用CSDN-markdown编辑器
- 利用jQuery框架设置页面弹出层
- thinkphp上传图片并jquery预览
- 一个特别不错的jQuery快捷键插件:js-hotkeys
- JS,JQuery日期时间处理方法小记
- Js/Jquery获取iframe中的元素
- 利用jquery控制全选全不选按钮
- jQuery实现产品对比功能附源码下载
- jquery模拟表单默认值
- php+jquery+ajax简单Ajax调用示例
- jQuery-1.8.3文件和CDN加速地址
- JQUERY ui datepicker整理(全)
- jQuery工具方法
- 解决:jquery ajax非首次请求Server端获取cookie值中文乱码问题
- JavaScript强化教程——编写第一个jQuery程序
- JavaScript强化教程——编写第一个jQuery程序
- [置顶] jquery.autocomplete 异步动态加载