资源描述:
《WebGIS各种术语定义以及介绍》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1、jQuery(function(){})与(function(){})(jQuery)的区别1、jQuery(function(){});======jQuery(document).ready(function(){});表示在DOM加载完毕后执行了ready()方法;2、(function(){})(jQuery);实际上是执行()(para)匿名方法,只不过传递了jQuery对象;3、总结:3.1、jQuery(function(){}),用于存放操作DOM对象的代码,执行其中代码时对象已经存在。不可用于存放开发插件的代码,因为jQuery对象
2、没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数).3.2、(function(){})(jQuery),用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码需要小心使用。2、jQuery中的extend方法通过不同的参数实现了几种不同的继承方法:1.extend(src),扩展jQuery静态方法.也就是说,将src对象的属性和方法逐一复制给jQuery$.extend({test:function(){alert('test函数')}})2.extend(dest,src1,src2,sr
3、c3...srcN),合并多个对象.为jQuery.extend(css1,css2)为例,css1,css2各有一些属性(方法照样会如此处理,这里只讲属性).extend函数会把css2有而css2没有的属性加到css1中,如果css2的某个属性与css1的某个属性名称享用,就会用css2的属性去覆盖css1的同名属性。css1就是最后的整和对象。或者也可以用:varnewcss=jquery.extend(css1,css2)newcss就是合并的新对象。varnewcss=jquery.extend({},css1,css2)newcss就是合并的
4、新对象.而且没有破坏css1的结构。//用法:jQuery.extend(obj1,obj2,obj3,..)arCss1={size:"10px",style:"oblique"}varCss2={size:"12px",style:"oblique",weight:"bolder"}$.jQuery.extend(Css1,Css2)//结果:Css1的size属性被覆盖,而且继承了Css2的weight属性//Css1={size:"12px",style:"oblique",weight:"bolder"}73.extend(boolean,de
5、st,src1,src2...),深度镶套对象新的extend()允许你更深度的合并镶套对象。下面的例子是一个很好的证明。//以前的.extend()jQuery.extend({name:“John”,location:{city:“Boston”}},{last:“Resig”,location:{state:“MA”}});//结果://=>{name:“John”,last:“Resig”,location:{state:“MA”}}//新的更深入的.extend()jQuery.extend(true,{name:“John”,location
6、:{city:“Boston”}},{last:“Resig”,location:{state:“MA”}});//结果//=>{name:“John”,last:“Resig”,//location:{city:“Boston”,state:“MA”}}1617与其他的类库不同的是,jQuery的extend方法提供了“深层拷贝”的功能,如果你传入的第一个参数为boolean型变量,则该变量为深层拷贝的标志,第二个参数为extend方法的目标对象,其余参数为需要进行继承的“父类”。如果第一个参数的值为true(深层拷贝),并且dest和src元素都包括
7、相同名称的对象属性,则对该对象属性的方法和属性再进行一次复制。*最后我们来通过分析源代码,来加深对该继承机制的理解:jQuery.extend=jQuery.fn.extend=function(){//copyreferencetotargetobjectvartarget=arguments[0]
8、
9、{},i=1,length=arguments.length,deep=false,options;//Handleadeepcopysituation/*如果第一个参数为boolean值,则取第二个参数为目标对象*/if(target.construc
10、tor==Boolean){deep=target;target=argumen