手机版

jQuery.extend() jquery . fn . extend()jquery学习笔记分析

时间:2021-11-06 来源:互联网 编辑:宝哥软件园 浏览:

为布尔值,表示是否进行深度合并,默认值为false,不进行深度合并。通过这种方式,可以在jQuery或jQuery.fn中添加新的属性和方法,jQuery . fn大多由jQuery的其他模块实现。向jQuery添加扩展时,使用$。extend(),如: jquery . extend({ add 3360 function(a,b){ return a b })。用$.fn.extend()向jQuery实例对象添加扩展;$ . fn . extend({ gys 3360 function(){ $(this))。css('color ',' red ')} });拨打:$('div.guo ')。gys();

因为参数的数量是不确定的,所以没有列出具体的可接受的参数。

选项:指向一个源对象。name:源对象的属性名。src:目标对象属性的原始值。copy:源对象copyIsArray:的属性值指示当深度复制数组clone:时,复制是否是对原始值的更正。target:目标对象。3360起始下标的数字。源对象的length:参数用于校正变量target.deep:是否执行深度复制。

33 ~ 338:如果第一个参数是布尔值,将目标分配给Deep,目标正在重新获取该值,将第二个参数分配给目标。此时,I的值从开头的1变为2,表示源对象最初是从第二个元素开始的。现在它已经成为第三个要素。这段代码可以和327行代码结合起来,知道为什么会有这个if语句。当执行原始函数extend时,它首先为target和I赋值,而不考虑参数,然后在以后对其进行修改。341 ~ 34:如果目标对象不是对象或函数,那么targeted={ };当346~349:length等于I时,表示没有objcet1等参数,被传入。此时,这个(jQuery或jQuery.fn)的当前对象作为目标对象,I减1,这样传入的对象作为源对象。

第351行开始循环,我指示起始源对象的下标,这是一个非常巧妙的用法。353线也很精彩。它将源对象的获取和判断放在一条语句中,只有当源对象不为空时,才会执行第354~362行。变量src是原始值,变量副本是复制值。如果目标和副本的引用相同,就不会覆盖目标对象同名的属性,从而进行无休止的迭代。obj.n1=obj$.extend(true,obj,{ n 2: obj });不同的浏览器会有不同的错误,但无一例外都会有. 365 ~ 372行长时间被卡住。如果是深度合并,副本是一个普通的javascript对象或数组,那么. 378 ~ 380行会递归合并。如果不是深度合并,副本不是未定义的,则直接覆盖目标对象的同名属性。

版权声明:jQuery.extend() jquery . fn . extend()jquery学习笔记分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。