【新手求助】下面的JS代码什么意思呢,能否一句一句解释一下

lrzw32 2013-08-07 04:39:51
(function ($) {
$.extend({
});
})(jQuery || $);

主要是第一句和第三句,谢谢各位
...全文
289 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lrzw32 2013-08-19
  • 打赏
  • 举报
回复
引用 13 楼 qwklove 的回复:
[quote=引用 10 楼 lrzw32 的回复:] [quote=引用 8 楼 qwklove 的回复:] [quote=引用 4 楼 lrzw32 的回复:] [quote=引用 3 楼 qwklove 的回复:] 这段代码是一个匿名函数的自执行,具体的执行是使用jquery的extend方法进行扩展:

//这一部分是个匿名函数,只不过用()括起来了,方便在在传入参数((jquery||$))后立即执行
(function ($) {
...
})
//这一部分是匿名函数的具体执行,即:
//用jquery的extend函数来扩展,至于具体扩展什么就要看$.extend()中传什么了
$.extend({
})
//这一部分是给匿名函数执行时传入的参数(即jquery)
(jQuery || $);
谢谢!!简单说就是定义一个立即自动执行的匿名函数?[/quote] (1)嗯~定义了一个匿名函数,然后立即执行了。其实匿名函数和普通函数一样,只不过是没有名字而已。比如:

//定义普通函数并立即执行有两种方式:
//方式一
function foo(a){...};
foo(a)
//方式二
( function foo(a){...};)(a)


//定义匿名函数并立即执行
//因为匿名函数没有名字,不能像上面foo()那样进行执行,所以只有一种方式,即上面的第二种方式:
(function(b){...})(b)
(2)至于(jquery||$),其实一般情况没必要,只需要传入一个即可($)或者(jquery),因为只要你引入了jquery的js文件,全局变量$和jquery是一样的。[/quote]请教一下,这两种有什么不一样
$(function(){})和(function(){})
[/quote] 12楼的回答比较详细,赞一下。 简单来说: $(function(){...})这是jquery的一种用法,相当于window.onload=function(){...}; (function(){})这是声明了一个匿名函数,普通函数的声明可以“function name(){}”,但是匿名函数没有名字,如果按照“function(){}”这样来声明会被js解析为错误,所以要用“(function(){})”这样来声明,要执行这个匿名函数的话就可以直接+(),即 (function(){})()。[/quote] (function(){})如果不加后面的括号就不立即执行,声明这个匿名函数就没意义了吗?
阿鱼 2013-08-19
  • 打赏
  • 举报
回复
引用 14 楼 lrzw32 的回复:
[quote=引用 13 楼 qwklove 的回复:] [quote=引用 10 楼 lrzw32 的回复:] [quote=引用 8 楼 qwklove 的回复:] [quote=引用 4 楼 lrzw32 的回复:] [quote=引用 3 楼 qwklove 的回复:] 这段代码是一个匿名函数的自执行,具体的执行是使用jquery的extend方法进行扩展:

//这一部分是个匿名函数,只不过用()括起来了,方便在在传入参数((jquery||$))后立即执行
(function ($) {
...
})
//这一部分是匿名函数的具体执行,即:
//用jquery的extend函数来扩展,至于具体扩展什么就要看$.extend()中传什么了
$.extend({
})
//这一部分是给匿名函数执行时传入的参数(即jquery)
(jQuery || $);
谢谢!!简单说就是定义一个立即自动执行的匿名函数?[/quote] (1)嗯~定义了一个匿名函数,然后立即执行了。其实匿名函数和普通函数一样,只不过是没有名字而已。比如:

//定义普通函数并立即执行有两种方式:
//方式一
function foo(a){...};
foo(a)
//方式二
( function foo(a){...};)(a)


//定义匿名函数并立即执行
//因为匿名函数没有名字,不能像上面foo()那样进行执行,所以只有一种方式,即上面的第二种方式:
(function(b){...})(b)
(2)至于(jquery||$),其实一般情况没必要,只需要传入一个即可($)或者(jquery),因为只要你引入了jquery的js文件,全局变量$和jquery是一样的。[/quote]请教一下,这两种有什么不一样
$(function(){})和(function(){})
[/quote] 12楼的回答比较详细,赞一下。 简单来说: $(function(){...})这是jquery的一种用法,相当于window.onload=function(){...}; (function(){})这是声明了一个匿名函数,普通函数的声明可以“function name(){}”,但是匿名函数没有名字,如果按照“function(){}”这样来声明会被js解析为错误,所以要用“(function(){})”这样来声明,要执行这个匿名函数的话就可以直接+(),即 (function(){})()。[/quote] (function(){})如果不加后面的括号就不立即执行,声明这个匿名函数就没意义了吗?[/quote] 匿名函数和普通函数其实是一样的,对于一个函数,声明了却不执行,就等于占着茅坑不便便一样。
阿鱼 2013-08-17
  • 打赏
  • 举报
回复
引用 10 楼 lrzw32 的回复:
[quote=引用 8 楼 qwklove 的回复:] [quote=引用 4 楼 lrzw32 的回复:] [quote=引用 3 楼 qwklove 的回复:] 这段代码是一个匿名函数的自执行,具体的执行是使用jquery的extend方法进行扩展:

//这一部分是个匿名函数,只不过用()括起来了,方便在在传入参数((jquery||$))后立即执行
(function ($) {
...
})
//这一部分是匿名函数的具体执行,即:
//用jquery的extend函数来扩展,至于具体扩展什么就要看$.extend()中传什么了
$.extend({
})
//这一部分是给匿名函数执行时传入的参数(即jquery)
(jQuery || $);
谢谢!!简单说就是定义一个立即自动执行的匿名函数?[/quote] (1)嗯~定义了一个匿名函数,然后立即执行了。其实匿名函数和普通函数一样,只不过是没有名字而已。比如:

//定义普通函数并立即执行有两种方式:
//方式一
function foo(a){...};
foo(a)
//方式二
( function foo(a){...};)(a)


//定义匿名函数并立即执行
//因为匿名函数没有名字,不能像上面foo()那样进行执行,所以只有一种方式,即上面的第二种方式:
(function(b){...})(b)
(2)至于(jquery||$),其实一般情况没必要,只需要传入一个即可($)或者(jquery),因为只要你引入了jquery的js文件,全局变量$和jquery是一样的。[/quote]请教一下,这两种有什么不一样
$(function(){})和(function(){})
[/quote] 12楼的回答比较详细,赞一下。 简单来说: $(function(){...})这是jquery的一种用法,相当于window.onload=function(){...}; (function(){})这是声明了一个匿名函数,普通函数的声明可以“function name(){}”,但是匿名函数没有名字,如果按照“function(){}”这样来声明会被js解析为错误,所以要用“(function(){})”这样来声明,要执行这个匿名函数的话就可以直接+(),即 (function(){})()。
ftiger 2013-08-16
  • 打赏
  • 举报
回复
$(function(){}) 这个是jQuery 的domReady(function(){})的简写,作用和window.onload(function(){})一样,指文档加载完后立刻执行,一般用于事件绑定,不过window.onload是在图片加载完之后才执行,domReady则在图片加载之前执行,所以启动速度快一些。 (function(){})(),这种方法建立了一个闭包,这个闭包里的 var 不会与外面的var冲突,所以大量的框架使用了这种方式封装代码,特别是$,很多代码框架喜欢用它但定义又不一样。(function($){})(jQuery),则保证了function内部的代码使用的$肯定是jQuery,而不是别的什么东西。
KK3K2005 2013-08-16
  • 打赏
  • 举报
回复
(function ($) { $.extend({ }); })(jQuery || $); =========》 window.tmp = function($){$.extend({});} window.tmp(jQuery || $); delete window.tmp;
lrzw32 2013-08-16
  • 打赏
  • 举报
回复
引用 8 楼 qwklove 的回复:
[quote=引用 4 楼 lrzw32 的回复:] [quote=引用 3 楼 qwklove 的回复:] 这段代码是一个匿名函数的自执行,具体的执行是使用jquery的extend方法进行扩展:

//这一部分是个匿名函数,只不过用()括起来了,方便在在传入参数((jquery||$))后立即执行
(function ($) {
...
})
//这一部分是匿名函数的具体执行,即:
//用jquery的extend函数来扩展,至于具体扩展什么就要看$.extend()中传什么了
$.extend({
})
//这一部分是给匿名函数执行时传入的参数(即jquery)
(jQuery || $);
谢谢!!简单说就是定义一个立即自动执行的匿名函数?[/quote] (1)嗯~定义了一个匿名函数,然后立即执行了。其实匿名函数和普通函数一样,只不过是没有名字而已。比如:

//定义普通函数并立即执行有两种方式:
//方式一
function foo(a){...};
foo(a)
//方式二
( function foo(a){...};)(a)


//定义匿名函数并立即执行
//因为匿名函数没有名字,不能像上面foo()那样进行执行,所以只有一种方式,即上面的第二种方式:
(function(b){...})(b)
(2)至于(jquery||$),其实一般情况没必要,只需要传入一个即可($)或者(jquery),因为只要你引入了jquery的js文件,全局变量$和jquery是一样的。[/quote]请教一下,这两种有什么不一样
$(function(){})和(function(){})
zhjdg 2013-08-07
  • 打赏
  • 举报
回复
<script type="text/javascript">
		function $(){
			alert('$$');
		}
	
		(function(window) {
			var _$ = window.$
				,jQuery = function(){
					if(this==window){
						return new jQuery()
					}
			};
			jQuery.noConflict = function(){
				if ( window.$ === jQuery ) {
					window.$ = _$;
				}
			}
			
			

			jQuery.prototype = {
				each : function() {
					alert('each');
				},
				on : function() {

				}
			}
			window.jQuery = window.$ = jQuery;
		})(window);
		
		
		jQuery.noConflict();
		var $$ = $();
		var $$$ = jQuery().each();
		
		
		
		
		
	</script>
你里面的$是个参数来的,不要搞乱
阿鱼 2013-08-07
  • 打赏
  • 举报
回复
引用 4 楼 lrzw32 的回复:
[quote=引用 3 楼 qwklove 的回复:] 这段代码是一个匿名函数的自执行,具体的执行是使用jquery的extend方法进行扩展:

//这一部分是个匿名函数,只不过用()括起来了,方便在在传入参数((jquery||$))后立即执行
(function ($) {
...
})
//这一部分是匿名函数的具体执行,即:
//用jquery的extend函数来扩展,至于具体扩展什么就要看$.extend()中传什么了
$.extend({
})
//这一部分是给匿名函数执行时传入的参数(即jquery)
(jQuery || $);
谢谢!!简单说就是定义一个立即自动执行的匿名函数?[/quote] (1)嗯~定义了一个匿名函数,然后立即执行了。其实匿名函数和普通函数一样,只不过是没有名字而已。比如:

//定义普通函数并立即执行有两种方式:
//方式一
function foo(a){...};
foo(a)
//方式二
( function foo(a){...};)(a)


//定义匿名函数并立即执行
//因为匿名函数没有名字,不能像上面foo()那样进行执行,所以只有一种方式,即上面的第二种方式:
(function(b){...})(b)
(2)至于(jquery||$),其实一般情况没必要,只需要传入一个即可($)或者(jquery),因为只要你引入了jquery的js文件,全局变量$和jquery是一样的。
叫我三三 2013-08-07
  • 打赏
  • 举报
回复
https://github.com/jquery/jquery/blob/master/src/core.js jquery的源码上 内部用的jQuery,但是引用jquery的js文件后无法调用出jQuery。 但可以使用$来代替jQuery 所以为兼容这2中情况就用了(jQuery || $)
叫我三三 2013-08-07
  • 打赏
  • 举报
回复
引用 5 楼 lrzw32 的回复:
[quote=引用 2 楼 kansousama 的回复:] (function ($) { $.extend({ }); })(jQuery || $); 相当于 function func1($){ $.extend({ }); } func1(jQuery || $); 就是写个方法然后马上执行,传的值为 jQuery 或者 $,哪个有传哪个,都有传第一个 不过(function())() 没有函数名,是匿名函数
JQuery和$不是同一个意思吗?[/quote] 我觉得不同一个意思,但是代表的对象应该是同一个。这个没研究过
lrzw32 2013-08-07
  • 打赏
  • 举报
回复
引用 2 楼 kansousama 的回复:
(function ($) { $.extend({ }); })(jQuery || $); 相当于 function func1($){ $.extend({ }); } func1(jQuery || $); 就是写个方法然后马上执行,传的值为 jQuery 或者 $,哪个有传哪个,都有传第一个 不过(function())() 没有函数名,是匿名函数
JQuery和$不是同一个意思吗?
lrzw32 2013-08-07
  • 打赏
  • 举报
回复
引用 3 楼 qwklove 的回复:
这段代码是一个匿名函数的自执行,具体的执行是使用jquery的extend方法进行扩展:

//这一部分是个匿名函数,只不过用()括起来了,方便在在传入参数((jquery||$))后立即执行
(function ($) {
...
})
//这一部分是匿名函数的具体执行,即:
//用jquery的extend函数来扩展,至于具体扩展什么就要看$.extend()中传什么了
$.extend({
})
//这一部分是给匿名函数执行时传入的参数(即jquery)
(jQuery || $);
谢谢!!简单说就是定义一个立即自动执行的匿名函数?
阿鱼 2013-08-07
  • 打赏
  • 举报
回复
这段代码是一个匿名函数的自执行,具体的执行是使用jquery的extend方法进行扩展:

//这一部分是个匿名函数,只不过用()括起来了,方便在在传入参数((jquery||$))后立即执行
(function ($) {
...
})
//这一部分是匿名函数的具体执行,即:
//用jquery的extend函数来扩展,至于具体扩展什么就要看$.extend()中传什么了
$.extend({
})
//这一部分是给匿名函数执行时传入的参数(即jquery)
(jQuery || $);
叫我三三 2013-08-07
  • 打赏
  • 举报
回复
(function ($) { $.extend({ }); })(jQuery || $); 相当于 function func1($){ $.extend({ }); } func1(jQuery || $); 就是写个方法然后马上执行,传的值为 jQuery 或者 $,哪个有传哪个,都有传第一个 不过(function())() 没有函数名,是匿名函数
似梦飞花 2013-08-07
  • 打赏
  • 举报
回复
即时执行的匿名函数 后边的jQuery || $是传入的参数

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧