,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间; 后面的object1到objectN同样作为对象,包含额外的属性合并到第一个参数。...return target; } 在jQuery对象上添加extend属性,并且在jQuery.fn上面也添加同样的extend属性,还记得前面jQuery.fn = jQuery.prototype...在jQuery对象上绑定的extend()和jQuery.fn上绑定的extend()方法其实是不同的,前者是类方法,是静态方法,调用方法写作$.extend();后者是实例方法,是成员方法,调用方法写作...通过这种方式,可以为全局对象jQuery扩展新的方法: $.extend({ //添加新的类方法 sum: function(a, b){ return a + b;...jQuery.fn即原型对象上添加extend()方法的代码解释,再复习下:jQuery对象和其原型上都具有extend()方法,区别在于一个是类方法,一个是成员方法,在使用场景上请注意。
与jquery.fn.extend的区别?...* jquery.extend 为jquery类添加类方法,可以理解为添加静态方法 * jquery.fn.extend: 源码中jquery.fn= jquery.prototype,所以对jquery.fn...的扩展,就是为jquery类添加成员函数 使用: jquery.extend扩展,需要通过jquery类来调用,而jquery.fn.extend扩展,所有jquery实例都可以直接调用。...'browser' : 'node'; 通过判断Global对象是否为window,如果不为window,当前脚本没有运行在浏览器中 41、jQuery 的 slideUp动画 ,如果目标元素是被外部事件驱动...如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。 setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
jQuery.extend(object) ,一个参数的用于扩展jQuery类本身,也就是用来在jQuery类/命名空间上增加新函数,或者叫静态方法,例如jQuery内置的 ajax方法都是用jQuery.ajax...如果不指定target,则给jQuery命名空间本身进行扩展。这有助于插件作者为jQuery增加新方法。 如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象。...target: 待修改对象。 object1: 待合并到第一个对象的对象。 objectN: 可选。待合并到第一个对象的对象。...jQuery.fn.extend(object)扩展 jQuery 元素集来提供新的方法(通常用来制作插件)。 首先我们来看fn 是什么东西呢。查看jQuery代码,就不难发现。...我 们知道扩展原型上的方法,就相当于为对象添加"成员方法",类的"成员方法"要类的对象才能调用,所以使用 jQuery.fn.extend(object)扩展的方法, jQuery类的实例可以使用这个"
jQuery.extend(object) ,一个参数的用于扩展jQuery类本身,也就是用来在jQuery类/命名空间上增加新函数,或者叫静态方法,例如jQuery内置的 ajax方法都是用jQuery.ajax...如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象。否则的话,副本会与原对象共享结构。 ...object1: 待合并到第一个对象的对象。 objectN: 可选。待合并到第一个对象的对象。 示例1: 合并 settings 和 options,修改并返回 settings。...jQuery.fn.extend(object)扩展 jQuery 元素集来提供新的方法(通常用来制作插件)。 首先我们来看fn 是什么东西呢。查看jQuery代码,就不难发现。...我们知道扩展原型上的方法,就相当于为对象添加”成员方法“,类的”成员方法“要类的对象才能调用,所以使用jQuery.fn.extend(object)扩展的方法, jQuery类的实例可以使用这个“成员函数
如果你在函数体内需要多次调用window 或 document对象,这样把window 或 document对象当作参数传进去,这样做是非常有必要的。...当然如果你的插件用不到这两个对象,那么就不用传递这两个参数了。 3.ndefined形参:看起来是有点多余。...,分别是: jquery.extend(object);为扩展jquery类本身.为类添加新的方法 jquery.fn.extend(object);给jquery对象添加方法 fn原型:查看jquery...jquery.extend(object);为jquery类添加类方法,可以理解为添加静态方法。...(3,4);//return 7 这样便为jquery添加一个为add 的方法,之后便可以在引入jquery的地方,使用这个方法了; $.fn.extend(object);对jquery添加成员函数
先看结论: 1)jQuery.extend(object) 为扩展 jQuery 类本身,为类添加新的静态方法; 2)jQuery.fn.extend(object) 给 jQuery 对象添加实例方法...它们的官方解释是: 1)jQuery.extend(): 把两个或者更多的对象合并到第一个当中, 2)jQuery.fn.extend():把对象挂载到 jQuery 的 prototype 属性,来扩展一个新的...,那么为什么两个方法指向同一个函数实现,但是却实现不同的功能呢, // 阅读源码就能发现这归功于 this 的强大力量 // 如果传入两个或多个对象,所有对象的属性会被添加到第一个对象 target /.../ 如果只传入一个对象,则将对象的属性添加到 jQuery 对象中,也就是添加静态方法 // 用这种方式,我们可以为 jQuery 命名空间增加新的方法,可以用于编写 jQuery 插件 // 如果不想改变传入的对象...,可以传入一个空对象:$.extend({}, object1, object2); // 默认合并操作是不迭代的,即便 target 的某个属性是对象或属性,也会被完全覆盖而不是合并 // 如果第一个参数是
每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的...同步强调的是顺序性,谁先谁后;异步则不存在这种顺序性。 // 同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作。...与 jQuery.fn.extend 有何区别?...jQuery.extend(object); //为jQuery类添加类方法,可以理解为添加静态方法 jQuery.extend({ min: function(a, b) { return a 对象来扩展一个对象,返回被扩展的对象 jQuery.fn.extend(object); //对jQuery.prototype进行的扩展,就是为jQuery类添加“成员函数”。
不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象。回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。...如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。 参数 object:需要例遍的对象或数组。 callback:每个成员/元素执行的回调函数。...如果不指定target,则给jQuery命名空间本身进行扩展。这有助于插件作者为jQuery增加新方法。 如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象。...参数 target:一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间。 object1:待合并到第一个对象的对象。...构造函数添加属性和方法 (function(jQuery) { jQuery.appName = 'laoma Extend'; })(jQuery); 5.jQuery常用插件 jQuery UI
和C#等编译类语言不同,在js中当一个对象存在以后,我们可以在任何时候对它的成员进行修改。对像成员的访问有两种方式:一是点记法(如Ext.version),二是索引法Ext["version"]。...如遍历对象的成员(属性集合中的每一项)。undefined在IE(js)5.5之后的版本中才有,这里的这种写法就巧妙的兼容了旧版本的浏览器。...是一样的(这里没有用extend是因为它被用到继承Ext.extend上面了),实现了对象扩展的功能,即从对象c拷贝成员的功能(如果有默认配置,则先从默认配置扩展)。...回到Ext对象,它给自己添加了几个很重要的成员: namespace 命名空间,js的命名空间其实就是对项链。如传入"a.b.c",则生成三个对象,并链接起来。...applyIf(o, c) 将对象c中非未定义成员扩展到o上 addBehaviors(o) id() 生成唯一对象ID, extend 对函数扩展,即类型继承。
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。...(不存在)就删除(添加)名称为select的class 9、完善的事件处理功能 Jquery已经为我们提供了各种事件处理方法,我们无需在html元素上直接写事件,而可以直接为通过jquery获取的对象添加事件...如果点击了一个匹配的元素, 则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。...把一个数组中的项目(处理转换后) 保存到到另一个新数组中,并返回生成的新数组。...2、jQuery对象转DOM对象 由于jQuery对象本身是一个集合。所以如果jQuery对象要转换为Dom对象则必须取出其中的某一项,一般可通过索引取出。
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法。...这些变动行做了一些事情:它是测试Metadata插件是否被安装如果它被安装了,它能扩展我们的options对象通过抽取元数据这行作为最后一个参数添加到JQuery.extend,那么它将会覆盖任何其它选项设置...jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。 3.1 jQuery.fn.extend(object); fn 是什么东西呢。...jQuery.fn.extend(object); 对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。...如: $.extend({ add:function(a,b){return a+b;} }); 便为 jQuery 添加一个为 add 的 “静态方法”,之后便可以在引入 jQuery
jQuery.extend(object) a、为jQuery类添加类方法,可以理解为添加静态方法。...如: jQuery.extend({ min: function(a, b) { return a < b ?...{ validate: true, limit: 5, name: "bar" } jQuery.fn.extend(object); 对jQuery.prototype进得扩展,就是为jQuery类添加...“成员函数”。...jQuery.extend() 的调用并不会把方法扩展到对象的实例上,引用它的方法也需要通过jQuery类来实现,如jQuery.init(),而 jQuery.fn.extend()的调用把方法扩展到了对象的
不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象。回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。...如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。 参数 object:需要例遍的对象或数组。 callback:每个成员/元素执行的回调函数。...如果不指定target,则给jQuery命名空间本身进行扩展。这有助于插件作者为jQuery增加新方法。 如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象。...参数 target:一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间。 object1:待合并到第一个对象的对象。...构造函数添加属性和方法 (function(jQuery) { jQuery.appName = 'laoma Extend'; })(jQuery); 上课案例:自定义插件演示 <!
接昨天的jQuery源码研究:为jQ对象扩展的一些工具方法(上),今天继续。...8、inArray()方法,作用其实就是检测数组中是否存在某个元素,如存在则返回元素对应的索引,如不存在,则返回-1。...-1 : indexOf.call(arr, elem, i) } }) 解释:很简单的一行代码,通过三目运算符,先对传入数组arr进行null判断,如为空直接返回-1,告诉开发者,这货不存在...9、merge()方法:合并两个数组内容到第一个数组。这个方法接收两个数组参数first和second。...11、map()方法,遍历数组中的每个元素或者对象中的每个属性,并将处理后的结果push进新的数组并返回。
1.类级别的插件开发 我是这样理解的:jQuery是类,$是jQuery的别名,$('selector')为jQuery对象 这种插件类似为jQuery类添加静态的方法,然后我们就可以像在C#中调用静态方法一样使用插件...我们还可以通过暴漏defaults的相同方法来暴漏一些可供别人扩展的方法;如果需要将一个方法或属性私有化,只需要在闭包中定义,而不要提供相应的引用。...3.总结 jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object); 给jQuery对象添加方法。fn 是什么东西呢?...原来 jQuery.fn = jQuery.prototype,jQuery.fn.extend(object)是对jQuery.prototype进行的扩展,就是为jQuery类添加“成员函数”。...jQuery类的实例可以使用这个“成员函数”。 jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。可以理解为jQuery添加静态方法。
普通的dom对象一般可以通过$()转换成jquery对象。 如:$(document.getElementById("msg"))则为jquery对象,可以使用jquery的方法。...由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。...(不存在)就删除(添加)名称为select的class 9、完善的事件处理功能 Jquery已经为我们提供了各种事件处理方法,我们无需在html元素上直接写事件,而可以直接为通过jquery获取的对象添加事件...如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。...把一个数组中的项目(处理转换后)保存到到另一个新数组中,并返回生成的新数组。
但选中这个jquery对象,返回的还是类数组,我们分辨不了,我们只能通过length来分辨jquery对象是否不存在 ?...4、jQuery.extend([deep,] target [, object1 ] [, objectN ] ) 1)将两个或更多对象的内容合并到第一个对象。...目标对象(第一个参数)将被修改,并且将通过$.extend()返回。...然而,如果我们想保留原对象,我们可以通过传递一个空对象作为目标对象: var object = $.extend({}, object1, object2); 在默认情况下,通过$.extend()合并操作不是递归的...不支持给这个参数传递 false,如果第一个对象的属性不写,就不会实现深拷贝 3)不深拷贝的例子 var object1 = { apple: 0, banana: { weight: 52,
注意: 传入的第一个参数可以是数组或者对象.如果数组,则遍历数组中的每一个对象....4,合并 (1)jQuery.extend( [deep], target, object1, [objectN] ) [deep]:可选/Boolean类型指示是否深度合并对象,默认为false。...如果该值为true,且多个对象的某个同名属性也都是对象,则该"属性对象"的属性也将进行合并。 target: Object类型目标对象,其他对象的成员属性将被复制到该对象上。...object1:可选/Object类型第一个被合并的对象。 [objectN]: 可选/Object类型第N个被合并的对象。 该函数可以将一个或多个对象的成员属性和方法复制到指定的对象上。...如果数组中不存在该值,则返回 -1。
$(”input:radio”, document.forms[0]) 在当前页面的第一个表单中查找所有的单选按钮 $.extend(prop) prop是一个jquery对象, 举例: jQuery.extend...然后返回一个新的数组 jQuery.inArray(value, array) 返回value在数组中的位置,如果没有找到,则返回 - 1 jQuery.unique(array) 删除数组中的所有重复元素...普通的dom对象一般可以通过$()转换成jquery对象。 如:$(document.getElementById("msg"))则为jquery对象,可以使用jquery的方法。...由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。...(不存在)就删除(添加)名称为select的class 9、完善的事件处理功能 Jquery已经为我们提供了各种事件处理方法,我们无需在html元素上直接写事件,而可以直接为通过jquery获取的对象添加事件