- 浏览: 387360 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
Nabulio:
写的详细,特殊语法学习到了
jdk1.5-1.9新特性 -
wooddawn:
您好,最近在做个足球数据库系统,用到了betbrain的数据表 ...
javascript深入理解js闭包 -
lwpan:
很受启发 update也可以
mysql 的delete from 子查询限制 -
wuliaolll:
不错,总算找到原因了
mysql 的delete from 子查询限制
如下的JavaScript代码如何理解
(function($){})(jQuery);
其实比较简单,要理解几个概念:
1、(),在JavaScript里()表示执行一个方法,如:
function x(){
alert("xxx");
}
var a = x; // 没有调用,a 是一个function
var a = x(); //调用了函数,a 的值是调用的结果:undefined
2、jQuery是一个jQuery对象,表示调用函数时,传入一个参数是jQuery对象。
这个没什么好说的
3、(function($){})这是一个匿名函数,形参是$,括号是一定需要的。这样一看就懂了,上式相当于
var f = function($){};
f(jQuery);
所以,(function($){})(jQuery)这句的意思就是定义一个函数并立马执行它。
javascript使用大括号({})语法创建无类型对象
JavaScript 中的对象其实就是属性(方法)的一个集合,并没有严格意义的类的概念。所以
它提供了另外一种简单的方式来创建对象,即大括号({})语法:
{
property1:statement,
property2:statement2,
…,
propertyN:statmentN
}
通过大括号括住多个属性或方法及其定义(这些属性或方法用逗号隔开),来实现对象的定义,这段代码就直接定义个了具有n个属性或方法的对象,其中属性名和其定义之间用冒号(:)隔开。例如:
Javascript代码
1.<script language="JavaScript" type="text/javascript">
2.var obj={}; //定义了一个空对象
3.var user={
4.name:"jack", //定义了name属性,初始化为jack
5.favoriteColor:["red","green","black","white"],//定义了颜色喜好数组
6.hello:function(){ //定义了方法hello
7.alert("hello,"+this.name);
8.},
9.sex:"male" //定义了性别属性sex,初始化为sex
10.}
11.//调用user 对象的方法hello
12.user.hello();
13.</script>
第一行定义了一个无类型对象obj,它等价于:
var obj=new Object();
接着定义了一个对象user 及其属性和方法。注意,除了最后一个属性(方法)定义,其他的必须以逗号(,)结尾。其实,使用动态增减属性的方法也可以定义一个完全相同的user象。
jQuery.fn.extend(object)方法
jQuery.fn.extend(object):给jQuery对象添加方法。
fn 是什么东西呢。查看jQuery代码,就不难发现。
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {//....
//......
};
原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦。例子
Javascript代码
1.<html>
2.<body>
3.<div id = "div_1">欢迎</div>
4.</body>
5.</html>
6.<script type="text/javascript" src="jquery.js"></script>
7.<script type="text/javascript">
8.(function($){
9. //一次性给jquery对象扩充多个方法或属性
10. $.fn.extend({
11. test : {
12. name : "张三",
13. sex : "男",
14. show : function(){
15. return "姓名:" + this.name + " 性别:" + this.sex;
16. }
17. },
18. money : 10000,
19. args : ["1","22","333",{args : ["4444","55555"],xiao : function(){alert("haahaaaa")}}]
20. });
21. //一次只给jquery对象扩充一个属性或方法
22. $.fn["abcd_aa"] = function(){
23. alert("abcd_aa");
24. };
25. $.fn["ccccc"] = "你好";
26. $.fn.xxx = function(){
27. alert("xxx");
28. };
29. $.fn.jjj = "你好jjj";
30.
31. //一次性给jquery本身扩充多个方法或属性
32. $.extend({
33. abc : function(){alert("abc")},
34. efg : function(){alert("efg")}
35. });
36. //一次只给jquery本身扩充一个属性或方法
37. $.qq = function(){alert("hahahhahahahha")};
38. $["aqaq"] = function(){alert("aqaq")};
39.
40. $["basePackage"] = $["basePackage"] || {};
41. $["basePackage"]["fun"] = function(name){
42. //alert("basePackage.fun()方法")
43. this.name = name;
44. };
45. $["basePackage"]["fun"].prototype = {
46. _init : function(){alert("初始化方法,"+this.name)},
47. a : "a属性"
48. };
49. //var newObj = new $["basePackage"]["fun"]();
50. //newObj._init();
51. //alert(newObj.a);
52. new $["basePackage"]["fun"]("小sss")._init();
53.
54. $.base = $.base || {};
55. $.base.fun = function(){alert("base.fun()方法")};
56.})(jQuery);
57.
58./*alert($("#div_1").test.show());
59.alert($("#div_1").money);
60.alert($("#div_1").args[0]);
61.alert($("#div_1").args[1]);
62.alert($("#div_1").args[2]);
63.alert($("#div_1").args[3].args[0]);
64.alert($("#div_1").args[3].args[1]);
65.alert($("#div_1").args[3].xiao());
66.alert($("#div_1").ccccc);
67.alert($.abc());
68.alert($.efg());
69.alert($("#div_1").xxx());
70.alert($("#div_1").jjj);
71.alert($.qq());
72.alert($.aqaq());
73.alert($.basePackage.fun());
74.alert($.base.fun());*/
75.</script>
jQuery.extend(object)
当参数只有一个时,表示扩展jQuery类本身,为类添加新的方法。
Javascript代码
1.<script type="text/javascript" src="jquery.js"></script>
2.<script type="text/javascript">
3.$.extend({
4. adda : function(){
5. return 5;
6. },
7. test_a : {
8. name : "lisi",
9. show : function(){
10. alert(this.name);
11. },
12. test_b : {
13. sex : "男",
14. getSex : function(){
15. return this.sex;
16. }
17. }
18. }
19.});
20.alert($.adda());
21.$.test_a.show();
22.alert($.test_a.test_b.getSex());
23.</script>
当参数有多个时(jQuery.extend(dest,src1,src2,src3...srcN)),表示将src1、src2...对象的属性和方法逐一复制给dest对象,需要注意的是,在复制的过程中,排在后面的参数(对象)将会覆盖排在前面的参数的属性和方法;
Javascript代码
1.<script type="text/javascript" src="jquery.js"></script>
2.<script type="text/javascript">
3.var objA = { speed:"slow" };
4.
5.var objB = { speed:"fast", power:"hard" };
6.
7.var objD = { speed:"test", name:"zhangsan"};
8.
9.var objC = jQuery.extend(objA, objB, objD);
10.
11.document.write("<dt>objA");
12.
13.for (var p in objA) { document.write("<dd>" + p + "->" + objA[p]); }
14.
15.document.write("<dt>objC");
16.
17.for (var p in objC) { document.write("<dd>" + p + "->" + objC[p]); }
18.</script>
当参数有多个(jQuery.extend(boolean, dest,src1,src2,src3...srcN))并且第一个参数为Boolean类型时,当boolean=true时,表示深层拷贝。当boolean=false时,结果和上面一样。那么什么是深层拷贝了,运行上面的例子,发现objA和objC包含的属性完全相同。当改成var objC = jQuery.extend(true, objA, objB, objD)后,objA和objC也是一样。改成var objC = jQuery.extend(false, objA, objB, objD)后,objA和objC不同了。objA的属性没有增加,和以前一样。深层拷贝会将目标对象objA和新对象objC中没有的属性(方法)都拷贝到其中。
(function($){})(jQuery);
其实比较简单,要理解几个概念:
1、(),在JavaScript里()表示执行一个方法,如:
function x(){
alert("xxx");
}
var a = x; // 没有调用,a 是一个function
var a = x(); //调用了函数,a 的值是调用的结果:undefined
2、jQuery是一个jQuery对象,表示调用函数时,传入一个参数是jQuery对象。
这个没什么好说的
3、(function($){})这是一个匿名函数,形参是$,括号是一定需要的。这样一看就懂了,上式相当于
var f = function($){};
f(jQuery);
所以,(function($){})(jQuery)这句的意思就是定义一个函数并立马执行它。
javascript使用大括号({})语法创建无类型对象
JavaScript 中的对象其实就是属性(方法)的一个集合,并没有严格意义的类的概念。所以
它提供了另外一种简单的方式来创建对象,即大括号({})语法:
{
property1:statement,
property2:statement2,
…,
propertyN:statmentN
}
通过大括号括住多个属性或方法及其定义(这些属性或方法用逗号隔开),来实现对象的定义,这段代码就直接定义个了具有n个属性或方法的对象,其中属性名和其定义之间用冒号(:)隔开。例如:
Javascript代码
1.<script language="JavaScript" type="text/javascript">
2.var obj={}; //定义了一个空对象
3.var user={
4.name:"jack", //定义了name属性,初始化为jack
5.favoriteColor:["red","green","black","white"],//定义了颜色喜好数组
6.hello:function(){ //定义了方法hello
7.alert("hello,"+this.name);
8.},
9.sex:"male" //定义了性别属性sex,初始化为sex
10.}
11.//调用user 对象的方法hello
12.user.hello();
13.</script>
第一行定义了一个无类型对象obj,它等价于:
var obj=new Object();
接着定义了一个对象user 及其属性和方法。注意,除了最后一个属性(方法)定义,其他的必须以逗号(,)结尾。其实,使用动态增减属性的方法也可以定义一个完全相同的user象。
jQuery.fn.extend(object)方法
jQuery.fn.extend(object):给jQuery对象添加方法。
fn 是什么东西呢。查看jQuery代码,就不难发现。
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {//....
//......
};
原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦。例子
Javascript代码
1.<html>
2.<body>
3.<div id = "div_1">欢迎</div>
4.</body>
5.</html>
6.<script type="text/javascript" src="jquery.js"></script>
7.<script type="text/javascript">
8.(function($){
9. //一次性给jquery对象扩充多个方法或属性
10. $.fn.extend({
11. test : {
12. name : "张三",
13. sex : "男",
14. show : function(){
15. return "姓名:" + this.name + " 性别:" + this.sex;
16. }
17. },
18. money : 10000,
19. args : ["1","22","333",{args : ["4444","55555"],xiao : function(){alert("haahaaaa")}}]
20. });
21. //一次只给jquery对象扩充一个属性或方法
22. $.fn["abcd_aa"] = function(){
23. alert("abcd_aa");
24. };
25. $.fn["ccccc"] = "你好";
26. $.fn.xxx = function(){
27. alert("xxx");
28. };
29. $.fn.jjj = "你好jjj";
30.
31. //一次性给jquery本身扩充多个方法或属性
32. $.extend({
33. abc : function(){alert("abc")},
34. efg : function(){alert("efg")}
35. });
36. //一次只给jquery本身扩充一个属性或方法
37. $.qq = function(){alert("hahahhahahahha")};
38. $["aqaq"] = function(){alert("aqaq")};
39.
40. $["basePackage"] = $["basePackage"] || {};
41. $["basePackage"]["fun"] = function(name){
42. //alert("basePackage.fun()方法")
43. this.name = name;
44. };
45. $["basePackage"]["fun"].prototype = {
46. _init : function(){alert("初始化方法,"+this.name)},
47. a : "a属性"
48. };
49. //var newObj = new $["basePackage"]["fun"]();
50. //newObj._init();
51. //alert(newObj.a);
52. new $["basePackage"]["fun"]("小sss")._init();
53.
54. $.base = $.base || {};
55. $.base.fun = function(){alert("base.fun()方法")};
56.})(jQuery);
57.
58./*alert($("#div_1").test.show());
59.alert($("#div_1").money);
60.alert($("#div_1").args[0]);
61.alert($("#div_1").args[1]);
62.alert($("#div_1").args[2]);
63.alert($("#div_1").args[3].args[0]);
64.alert($("#div_1").args[3].args[1]);
65.alert($("#div_1").args[3].xiao());
66.alert($("#div_1").ccccc);
67.alert($.abc());
68.alert($.efg());
69.alert($("#div_1").xxx());
70.alert($("#div_1").jjj);
71.alert($.qq());
72.alert($.aqaq());
73.alert($.basePackage.fun());
74.alert($.base.fun());*/
75.</script>
jQuery.extend(object)
当参数只有一个时,表示扩展jQuery类本身,为类添加新的方法。
Javascript代码
1.<script type="text/javascript" src="jquery.js"></script>
2.<script type="text/javascript">
3.$.extend({
4. adda : function(){
5. return 5;
6. },
7. test_a : {
8. name : "lisi",
9. show : function(){
10. alert(this.name);
11. },
12. test_b : {
13. sex : "男",
14. getSex : function(){
15. return this.sex;
16. }
17. }
18. }
19.});
20.alert($.adda());
21.$.test_a.show();
22.alert($.test_a.test_b.getSex());
23.</script>
当参数有多个时(jQuery.extend(dest,src1,src2,src3...srcN)),表示将src1、src2...对象的属性和方法逐一复制给dest对象,需要注意的是,在复制的过程中,排在后面的参数(对象)将会覆盖排在前面的参数的属性和方法;
Javascript代码
1.<script type="text/javascript" src="jquery.js"></script>
2.<script type="text/javascript">
3.var objA = { speed:"slow" };
4.
5.var objB = { speed:"fast", power:"hard" };
6.
7.var objD = { speed:"test", name:"zhangsan"};
8.
9.var objC = jQuery.extend(objA, objB, objD);
10.
11.document.write("<dt>objA");
12.
13.for (var p in objA) { document.write("<dd>" + p + "->" + objA[p]); }
14.
15.document.write("<dt>objC");
16.
17.for (var p in objC) { document.write("<dd>" + p + "->" + objC[p]); }
18.</script>
当参数有多个(jQuery.extend(boolean, dest,src1,src2,src3...srcN))并且第一个参数为Boolean类型时,当boolean=true时,表示深层拷贝。当boolean=false时,结果和上面一样。那么什么是深层拷贝了,运行上面的例子,发现objA和objC包含的属性完全相同。当改成var objC = jQuery.extend(true, objA, objB, objD)后,objA和objC也是一样。改成var objC = jQuery.extend(false, objA, objB, objD)后,objA和objC不同了。objA的属性没有增加,和以前一样。深层拷贝会将目标对象objA和新对象objC中没有的属性(方法)都拷贝到其中。
发表评论
-
不同的声音-我为什么反对用Node
2015-09-10 10:41 648随着无线端的快速普及 ... -
模块化开发之sea.js实现原理总结
2014-11-27 10:38 971seajs官网说:seajs是一个 ... -
javascript中=,==,===号的区别
2014-11-24 09:10 500= 赋值运算符 == 等于 === 严格等于 ... -
javascript深入理解js闭包
2014-11-13 14:01 1000一、变量的作用域 要 ... -
SHTML 教程
2014-11-11 14:35 863什么是 SHTML 使用SSI(Se ... -
minify使用手冊
2014-09-10 10:58 630版权声明:转载时请以 ... -
HTTP 304状态分析
2014-07-08 09:08 525HTTP 304: Not Modified 标准 ... -
Varnish
2014-06-19 11:34 8451简介 Varnish是一款高性能的开源HTTP加速 ... -
iframe跨域访问
2014-05-06 11:33 793js跨域是个讨论很多的 ... -
Nginx配置文件详细说明
2014-04-18 08:34 419在此记录下Nginx服务器ng ... -
HTML中td 中折行成2行的办法
2014-04-01 16:39 904element.style { border-bott ... -
HTML中HR属性
2014-03-31 10:54 9921、size线段粗细的设定: <HR&g ... -
一段jquery代码的性能问题
2014-02-11 19:02 644用jquery class去获取对象的属性,在firefox ... -
js获取几天后的日期,获取当前月最后一天
2013-12-10 16:56 2524function date2str(n) { var ... -
js求星期几
2013-10-11 17:31 512var weekArray = new Array(&quo ... -
跨站脚本攻击
2013-10-08 14:35 944跨站脚本是近年来最 ... -
js比较字符串大小
2013-09-26 18:10 911与操作字符串有关的最后一个方法是localeCompare ... -
js对特定表格排序
2013-09-26 17:43 734function initSortArrays() { ... -
使用Minify来优化网站性能
2013-09-16 15:25 812Minify 是用PHP5开发的应用,通过遵循一些Yahoo ... -
JavaScript的性能优化:加载和执行
2013-09-09 14:06 684随着Web2.0技术的不断推广,越来越多的应用使用 Jav ...
相关推荐
在哪里放置 JavaScript 代码? 通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代码放置在 HTML 文档的任何地方。但放置的地方,会对 JavaScript 代码的正常执行会有一定影响,具体如下所...
JS Beauty 是一款 Javascript 美化工具,它具有美化,净化,压缩和解压缩 Javascript 代码等功能: 1. 美化:将混乱的 Javascript 代码格式化为优美的带缩进的格式,适合阅读和修改。 2. 净化:去掉 Javascript ...
JavaScript是一种广泛应用于网页和网络应用的编程语言,...而“javascript代码自动生成.htm”文件可能提供了关于如何利用这些概念和工具的具体指导,包括实例和教程,以帮助你更好地理解和实践JavaScript代码生成技术。
JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)...
通过学习和理解这些JavaScript广告代码,开发者可以掌握如何在自己的网站上创建和优化广告,同时提升网站的用户体验和商业价值。对于网页设计师和前端开发者来说,熟练掌握这些技术是提升专业技能的重要途径。这个...
JavaScript Obfuscator是一种工具,主要用于保护JavaScript代码,通过将源代码转换为难以理解的形式,以防止未经授权的用户查看、修改或盗窃代码。在Web开发中,尤其对于那些包含商业逻辑或者敏感信息的JavaScript...
这个名为"javascript代码和网页演示"的资源集合,显然是为了帮助初学者或开发者深入理解JavaScript在实际网页中的应用,通过源码分析和效果展示来提升技能。 首先,JavaScript的核心知识点包括变量、数据类型、控制...
这个"javascript常见代码合集"包含了一系列实现常见效果的JavaScript代码示例,可以帮助开发者理解和学习JavaScript的基础以及进阶功能。 1. **变量与数据类型**: JavaScript支持基本数据类型(如字符串、数字、...
资源名称:编写可靠的JAVAscript代码 测试驱动开发JAVAscript商业软件内容简介:《编写可靠的Javascript代码 测试驱动开发Javascript商业软件》分为5个部分:第Ⅰ部分“奠定坚实的基础”...
通过学习和实践“JavaScript代码大全”中的各种示例和特效代码,开发者不仅可以深化对JavaScript的理解,还能提升实际项目开发的能力。无论你是初学者还是经验丰富的开发者,这个资源都能提供宝贵的学习材料。
通过阅读源代码,开发者可以深入理解JavaScript的工作原理、设计模式以及最佳实践。 2. **代码调试与优化**:掌握源代码可以帮助开发者更好地调试和优化自己的JavaScript程序。 3. **二次开发**:许多开源项目提供了...
按比例缩放图片,JavaScript代码.rar按比例缩放图片,JavaScript代码.rar按比例缩放图片,JavaScript代码.rar按比例缩放图片,JavaScript代码.rar按比例缩放图片,JavaScript代码.rar按比例缩放图片,JavaScript代码...
本文将探讨一种专门用于在`<pre>`标签内实现JavaScript代码高亮显示的插件,并结合源码分析工具,提升开发效率。 首先,`<pre>`标签内的JavaScript代码高亮显示插件通常是基于CSS和JavaScript实现的。这类插件通过...
JavaScript代码生成器就是一种能够帮助开发者快速生成JavaScript代码的工具,它可以极大提高开发效率,减少手动编写重复性代码的工作量。 JavaScript代码生成器通常具备以下功能: 1. 自动化模板:这些工具提供了...
这份"javascript实例代码"的压缩包很可能包含了丰富的JavaScript代码片段,涵盖了从基础操作到复杂功能的各种实例,对于学习和理解JavaScript语法、函数、对象、事件处理、DOM操作等有极大的帮助。 首先,基础知识...
一些常用的JavaScript代码,全是我工作中的总结
示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码JavaScript BOM操作 示例代码...
Javascript编程宝典代码 Javascript编程宝典代码 Javascript编程宝典代码 Javascript编程宝典代码
常用Javascript特效代码
超实用的javascript代码段。包含近300段代码和400个解决方案,含目录