首页
学习
活动
专区
圈层
工具
发布

jQuery源码研究:jQuery对象及原型上的extend()方法

现在看到jQuery的227行,本篇读jQ的继承方法jQuery.extend()。 官方作用解释是将一个或多个对象合并到目标对象中。...target就是最后准备返回的一个对象,定义时被赋予初始值对象,arguments[ 0 ] || {}指如参数数组有值则返回参数数组索引为0的值,否则就是返回一个空对象给target变量。...isFunction(target)){ target = {}; } 当target为string类型或其他基本类型值或者是函数类型时,将target值直接用空对象赋值。...所谓纯对象,指的就是普通的键值对形式构成的对象 // 当deep为true意为执行深拷贝,且copy对象为纯对象 或 copy对象为数组 Array.isArray()用于确定传递值是否为数组...jQuery.fn即原型对象上添加extend()方法的代码解释,再复习下:jQuery对象和其原型上都具有extend()方法,区别在于一个是类方法,一个是成员方法,在使用场景上请注意。

1.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    jquery常用方法

    $("#ID").not();//从匹配元素集合中删除元素 $("#ID").add();//将元素添加到匹配元素的集合中 $("#ID").slice();//将匹配元素集合缩减为指定范围的子集 $...(array1,array2);//合并两个数组 jQuery.unique(dom);//去除重复DOM元素 jQuery.makeArray(obj);//将类数组对象转换为数组对象 jQuery.trim...jQuery.isEmptyObject();//是否为空对象(不含可枚举的属性)。 jQuery.isFunction();//否为函数。 jQuery.isNumeric();//是否为数组。...jQuery.isPlainObject();//是否为使用“{}”或“new Object”生成的对象,而不是浏览器原生提供的对象。...jQuery.param(object);//将对象的键值对转化为URL键值对字符串形式 jQuery.proxy();//调整this的指向 --------------------- 作者:三五月儿

    1.3K20

    前端开发面试题总结之——JAVASCRIPT.One

    功能相似;但写法不同; 语法: .call(对象[,参数1,参数2,…]);//此地参数是指的是对象的参数,非方法的参数; .apply(对象,参数数组)//参数数组的形式:[参数1,参数2,…]...push 方法 将新元素添加到一个数组中,并返回数组的新长度值。 var a=[1,2,3,4]; a.push(5); pop 方法 移除数组中的最后一个元素并返回该元素。...(1)创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。 (2)属性和方法被加入到 this 引用的对象中。...闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环) jQuery 中如何将数组转化为 json 字符串,然后再转化回来?...协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器

    1.5K10

    【前端】Web前端学习笔记【2】

    相关博客: Web前端学习笔记【1】 ---- 1. this在 JavaScript 中主要有以下五种使用场景 ---- 在全局函数调用中,this 绑定全局对象,浏览器环境全局对象为 window...作为对象方法使用,this 绑定到该对象。 在对象a的方法b内部的函数c中,this 也绑定全局对象,应该绑定到方法b对应的对象a上。这是 JavaScript的缺陷,解决方法:用that捕捉。...在构造函数中,this 绑定到新创建的对象。 使用apply或call调用函数, this 将会被显式设置为传入的的第一个参数。...默认会覆盖到非定位元素上。...使用空标签清除浮动。 这种方法是在每一个浮动标签后面添加一个空标签 定义css clear:both. 弊端就是增加了无意义标签。

    54520

    jQuery源码研究:为jQ对象扩展的一些工具方法(上)

    上一章,讨论的是jQuery对象及其原型上的extend()方法,在源码中,实现了支持开发者自行扩展新方法的功能,但其实jQuery也通过对extend()传入一个对象参数来添加官方扩展方法,这些工具方法都是扩展在...2、isPlainObject()方法作用是检测参数是否为纯对象,这个方法在上一章中也讲到过,所谓纯对象,就是正常键值对形式的对象。...3、isEmptyObject()方法,看命名即知其作用是检测一个对象是否为空对象,即不包含任何可枚举属性。...return false; } return true; } }) 通过for...in...来检测对象是否有可枚举属性来,判断是否为空对象。...5、each()方法,这个方法大家就非常熟悉了,遍历对象或数组用的,来看看该方法的内部实现: jQuery.extend({ each:function(obj, callback){

    84530

    jQuery深入——动画、常用工具、JSON、Ajax

    [1, 2, 3, 4, 5]));   $.makeArray(object) 将类数组对象转换为数组 var arrayLikeObject = {     0: 'a',     1: 'b',...,将数组2合并至1 var arr1 = [0, 1, 2] var arr2 = [3, 4, 5] $.merge(arr1, arr2);   7、对象操作 扩展对象 $.extend([deep...数据结构更加简化,不需要成对标记 对象查找方式比 DOM 结构化查找快速 更丰富的数据类型 3、数据格式限制 以 { 起始,} 结束 双引号包裹键名 JSON 字符串中不可添加注释 4、JS 中如何使用...JSON 数据 JSON 数据本质上是一个字符串 可以通过 eval、JSON.parse 等方式转化为对象 注意使用 try catch 5、其他语言中如何使用 JSON 数据 很多语言都内置了 JSON...catch 除了低版本 IE(6、7),兼容性很好 可以将对象与 JSON 数据格式互相转化 2、JSON.parse 方法 将 JSON 数据格式转化为对象 第二个参数接受一个过滤函数 注意去除数据中的尾逗号

    1.9K10

    jQuery源码研究:为jQ对象扩展的一些工具方法(下)

    :将一个类数组转化成真正的数组对象。...; 另一个种情况是对应的没有length属性的有键值对的对象,此时通过call调用原生数组的push()方法来将参数对象arr传入方法开始就创建好的空数组中,生成以对象参数为元素的数组。...这里注意,由于数组是引用数据类型,所以first数组内容更新了。 10、grep()方法,使用指定的回调函数来过滤数组中的元素,并返回过滤后的数组。...11、map()方法,遍历数组中的每个元素或者对象中的每个属性,并将处理后的结果push进新的数组并返回。...在上面讲的方法实现中,关于call和apply的使用是异常频繁的,它也是js比较诡异却又神奇的一个特点,需要真正弄清哦。

    1.2K20

    途虎 面经,其实挺简单的!

    为了解决缓存穿透问题,可以采用以下解决方案: 缓存空对象:当数据库中不存在某个数据时,将空对象存入缓存中,这样下次查询同样的数据时,可以从缓存中获取空对象,避免直接访问数据库。...它可以通过使用多个哈希函数和位数组来表示一个集合,可以高效地判断一个元素是否存在于集合中,但有一定的误判率。...布隆过滤器和缓存空对象的区别主要在于: 原理:布隆过滤器是通过多个哈希函数和位数组来表示一个集合,用于判断元素是否存在于集合中。而缓存空对象是将空对象存入缓存,用于表示数据库中不存在某个数据。...叶子节点:在B树中,叶子节点存储了所有的键值和对应的数据,而在B+树中,所有的键值和对应的数据都存储在叶子节点上。非叶子节点只包含键值和指向子节点的指针。...5.聚簇索引和非聚簇索引 烂大街八股文 聚簇索引和非聚簇索引是数据库中常用的两种索引类型,它们的主要区别如下: 数据存储方式:聚簇索引是根据索引的键值对将数据行物理上存储在一起,而非聚簇索引则是将索引的键值对和数据行分开存储

    43630

    jQuery中的常用内容总结(三)

    B>遍历  由于js本身就是脚本语言的缘故,遂在js中可遍历的对象大致有三种 对象Object类型、数组Array类型以及混合类型(一般是Object+Array类型),相比较java是不是巨强大,O...通过代码和实际输出结果可以看出: 1.如果遍历的是对象类型,循环的每一项都会只输出这个对象item的键key,至于值就需要Object[key]来获取了; 2.如果遍历的是数组类型,循环的每一项都会只输出这个数组...嗯,以上只是提到了js中的遍历,现在给大家演示下jQuery中的遍历,这里需要说明的是一般对象或者数组遍历用js的遍历就好了,jQuery中的遍历(each)一般是用来遍历选定的dom对象的,这里给出样例哈...以上代码中的each方法的返回值有两个 idx:当前循环到的dom对象所在的下标位置 ele:当前循环到的dom对象可直接使用jQuery的方法对当前循环的dom进行操作   关于遍历这一节就不过多缀诉了...,请区别于直接比较的值,     在js中如果除了空和零之外的变量在比较时都是true(undefined这个关键字除外哈)     在js中变量值是不存在null这一说,这个要区别于java中的空值

    1.2K10

    jQuery中的常用内容总结(三)

    B>遍历  由于js本身就是脚本语言的缘故,遂在js中可遍历的对象大致有三种 对象Object类型、数组Array类型以及混合类型(一般是Object+Array类型),相比较java是不是巨强大,O...通过代码和实际输出结果可以看出: 1.如果遍历的是对象类型,循环的每一项都会只输出这个对象item的键key,至于值就需要Object[key]来获取了; 2.如果遍历的是数组类型,循环的每一项都会只输出这个数组...嗯,以上只是提到了js中的遍历,现在给大家演示下jQuery中的遍历,这里需要说明的是一般对象或者数组遍历用js的遍历就好了,jQuery中的遍历(each)一般是用来遍历选定的dom对象的,这里给出样例哈...以上代码中的each方法的返回值有两个 idx:当前循环到的dom对象所在的下标位置 ele:当前循环到的dom对象可直接使用jQuery的方法对当前循环的dom进行操作   关于遍历这一节就不过多缀诉了...,请区别于直接比较的值,     在js中如果除了空和零之外的变量在比较时都是true(undefined这个关键字除外哈)     在js中变量值是不存在null这一说,这个要区别于java中的空值

    1.2K20

    某峰前端二阶段面试题

    使用场景:① 封装私有变量(如计数器函数,避免全局变量);② 防抖节流函数的实现;③ 模块化开发中暴露特定方法。7. 事件委托是什么?如何确定事件源?...JSON如何新增和删除键值对JSON 本质是符合格式的 JS 对象,操作方式与对象一致:新增键值对:key = value 或 obj'key' = value。...删除键值对:使用 delete obj.key 或 delete obj'key'。13. 简述下面向对象面向对象(OOP)是一种编程思想,核心是封装、继承、多态。...全局环境:this 指向全局对象(浏览器中是 window,js 中是 global)。函数直接调用:非严格模式下 this 指向全局对象,严格模式下 this 是 undefined。...利用对象属性唯一性:将数组元素作为对象的键,避免重复。26. 简述下深浅拷贝,并说下如何分别实现,以及使用场景浅拷贝:只复制对象的第一层属性,若属性是引用类型,复制的是地址,修改新对象会影响原对象。

    19310

    【JavaWeb】89:request请求

    在学习之前,先思考如下问题: 对于浏览器来说: 如何将用户数据发送到服务器呢? 数据传输的格式是怎么样的呢? 对于服务器来说: 如何获取用户提交的数据呢? 如何将结果响应给浏览器?...②请求头 以键值对的形式将信息传输给服务器。 ③请求体 post请求的参数在请求体中,而get请求为空。 二、request请求API 回到最先开始的几个问题,浏览器将数据传输给服务器了。...get请求的请求体为空,post请求参数需要从请求体中获取。 参数名为键值对中的键,参数值为键值对中的值。这个是一对一的获取方式。...但对该方法也要有一定的了解,该方法获取的值是一个数组,使用Arrays类可以将其转化成字符串再打印。...③getParameterMap()方法 看到Map第一反应就是键值对了,Map集合的两种遍历方式选择一种遍历打印即可。 三、request域对象和转发 1request域对象 如何理解域对象呢?

    1.2K30

    jQuery 入门指南教程

    使用jQuery的第一步,往往就是将一个选择表达式,放进构造函数jQuery()(简写为$),然后得到被选中的元素。...对于jQuery对象只能使用jQuery的方法,而dom对象只能使用dom的方法,如要获取第三个元素的内容。...$.each() 遍历一个数组或对象。 $.inArray() 返回一个值在数组中的索引位置。如果该值不在数组中,则返回-1。 $.grep() 返回数组中符合某种标准的元素。...$.extend() 将多个对象,合并到第一个对象。 $.makeArray() 将对象转化为数组。 $.type() 判断对象的类别(函数对象、日期对象、数组对象、正则对象等等)。...$.isArray() 判断某个参数是否为数组。 $.isEmptyObject() 判断某个对象是否为空(不含有任何属性)。 $.isFunction() 判断某个参数是否为函数。

    1.7K11

    jQuery中的常用内容总结(三)

    B>遍历  由于js本身就是脚本语言的缘故,遂在js中可遍历的对象大致有三种 对象Object类型、数组Array类型以及混合类型(一般是Object+Array类型),相比较java是不是巨强大,O...通过代码和实际输出结果可以看出: 1.如果遍历的是对象类型,循环的每一项都会只输出这个对象item的键key,至于值就需要Object[key]来获取了; 2.如果遍历的是数组类型,循环的每一项都会只输出这个数组...嗯,以上只是提到了js中的遍历,现在给大家演示下jQuery中的遍历,这里需要说明的是一般对象或者数组遍历用js的遍历就好了,jQuery中的遍历(each)一般是用来遍历选定的dom对象的,这里给出样例哈...以上代码中的each方法的返回值有两个 idx:当前循环到的dom对象所在的下标位置 ele:当前循环到的dom对象可直接使用jQuery的方法对当前循环的dom进行操作   关于遍历这一节就不过多缀诉了...,请区别于直接比较的值,     在js中如果除了空和零之外的变量在比较时都是true(undefined这个关键字除外哈)     在js中变量值是不存在null这一说,这个要区别于java中的空值

    2.3K90

    使用Map()函数取到数组里面的值

    Map() 函数是 JavaScript 中的一个内置函数,用于创建一个键值对的映射。Map 对象提供了一种类似字典(Dictionary)的数据结构,其中的键和值可以是任意类型的。...,首先使用 new Map() 创建一个空的 Map 对象。...然后,使用 set() 方法添加键值对到 Map 中,其中键是字符串,值可以是任意类型。 可以使用 get() 方法根据键获取对应的值。 has() 方法用于检查指定的键是否存在于 Map 中。...总结,Map() 函数是 JavaScript 中用于创建键值对映射的内置函数,它提供了一组用于操作和访问键值对的方法。你可以使用 Map 对象来存储和操作数据,特别适用于需要快速查找和索引的场景。...使用Map()函数取到数组里面的值 <!

    84720
    领券