jQuery.extend(),是拓展jQuery这个类,即可以看作是jQuery这个类本身的静态方法.
![96f8e6f77bc1e74c2779b90b352b20c6.png](https://i-blog.csdnimg.cn/blog_migrate/5ab8fb2bcf501113ecb9c17d3e2ac5f8.jpeg)
jQuery.fn.extend,从字面理解这个方法,就是拓展了jQuery.fn的方法.看看源码:
![19fcb213b727bd963c52fc42ba469fb7.png](https://i-blog.csdnimg.cn/blog_migrate/2c911d008ba367deb5d6574ff836207f.jpeg)
jQuery.fn = jQuery.prototype, 就是原型, jQuery.fn.extend扩展的就是jQuery对象( 原型的) 方法, 对象是啥? 就是类的实例化, 例如: $("#text"), 就是jQuery的对象。也就是说, jQuery.fn.extend拓展方法, 要用在jQuery对象上才行, 一般插件的制作是用此方法进行扩展的。
![db69cec6f8114a0ec0188c8726c26392.png](https://i-blog.csdnimg.cn/blog_migrate/f68f34fe5c63be44df222487ecc36051.jpeg)
除了方法, jQuery.extend(target, object1, [objectN])用一个或多个其他对象来扩展一个对象,返回被扩展的对象。说人话就是合并对象。
![9428d1e7a138eecb45c07eb121a08c44.png](https://i-blog.csdnimg.cn/blog_migrate/8430d312a593f6ae835dbc610d1b923f.jpeg)
保留第一参数settings,后面的options等添加进来,内部属性与settings同名时,就覆盖settings属性的值,不同名的直接添加到settings.
jQuery的extend的重载原型
$.extend(boolean,dest,src1,src2,src3...);
![178d16e91dcedb170088eae338180ee9.png](https://i-blog.csdnimg.cn/blog_migrate/c7b7f98a2ea46781210e88f388ae43cd.jpeg)
![e30108f645e5bcc8c7416e2b3ceb4cf6.png](https://i-blog.csdnimg.cn/blog_migrate/5db16a323f90ac19ecc33e38acc8ca3e.jpeg)
其中第一个参数boolean代表是否进行深度拷贝,其余参数和之前一样.