
js
文章平均质量分 75
渡久地东亚
这个作者很懒,什么都没留下…
展开
-
callee,caller,call()以及apply()的用法理解以及从中引申出的关于作用域跟this的理解
在函数内部,有两个特殊的对象:arguments和this。原创 2014-11-09 20:48:46 · 867 阅读 · 0 评论 -
js正则表达式lastIndex
今天在写一个校验ip的正则表达式时,遇到一个问题,表达式匹配本身没有任何问题,但当末尾带上/g时,校验同一个ip,第一次使用test返回的结果是true,但第二次就是false,第三次又是true,仔细一想,记得RegExp对象有一个记录匹配位置的属性,于是上w3school查了一下,果然。RegExpObject.lastIndex以下为w3school上的内容:该属性存放一个整原创 2016-01-27 00:53:39 · 3142 阅读 · 0 评论 -
jQuery源码学习(版本1.11)-事件处理-jQuery事件对象
概述本文详细分析jquery-1.11.1.js源码文件行数:4908~4997;代码简介:构造函数jQuery.Event用于创建jQuery事件对象实例,jQuery.Event.fn为其原型。jQuery事件对象是jQuery各种事件处理方法中使用的模型,里面对原生事件模型进行了包装,解决了一些兼容性问题,增加了一些属性强化事件对象的功能;下文进行详细代码分析。jQu原创 2015-05-24 01:07:25 · 627 阅读 · 1 评论 -
jQuery源码学习(版本1.11)-事件处理-工具函数jQuery.event
概述本文详细分析jquery-1.11.1.js源码文件行数:4269~4906;代码简介:定义了jQuery.event命名空间,存放了事件处理底层的工具函数add-增加事件监听,remove-移除事件监听,trigger-触发事件,dispatch-事件分发等,JQ对象利用JQ原型方法添加事件时,最终都会调用到jQuer.event里的工具方法。下文进行详细代码分析。j原创 2015-05-24 01:00:10 · 1271 阅读 · 1 评论 -
jQuery源码学习(版本1.11)-queue
概述本文详细分析jquery-1.11.1.js源码文件行数:3957~4089;代码简介:jQuery.queue里使用了data缓存的机制,为elem缓存一个回调队列,每次dequeue时,队列里回调出队的同时会执行,实现了一个回调机制,与Deferred那种相对独立的回调机制相比,这种回调是与elem紧紧关联的,回调函数跟elem绑定在一起;下文进行详细代码分析。代码原创 2015-05-10 01:28:54 · 499 阅读 · 0 评论 -
jQuery源码学习(版本1.11)-事件处理-整体架构
概述jquery-1.11.1.js版本的事件处理块的代码主要在4273到5269行之间,核心是运用了data缓存,增加事件监听时,在每一个JQ对象的data缓存中都保存一个对象map(事件类型-回调数组),事件触发后,会遍历执行回调数组里的每一个回调,移除监听,则是删除对应缓存里的回调或事件类型,以上三种场景构成整一个jQuery事件处理流程。代码结构1.jQuery事件处理原创 2015-05-10 22:49:58 · 705 阅读 · 1 评论 -
jQuery源码学习(版本1.11)-Callbacks
概述本文详细分析jquery-1.11.1.js源码文件行数:3048~3248;代码简介:定义了工具函数callbacks,用于创建Callbacks对象,Callbacks对象可添加异步回调函数,对他们的执行进行统一管理;下文进行详细代码分析。jQuery.Callbacks// 匹配非空白var rnotwhite = (/\S+/g);// 缓存已经建原创 2015-04-20 22:43:39 · 495 阅读 · 0 评论 -
jQuery源码学习(版本1.11)-ready
概述本文详细分析了jquery-1.11.1.js源码文件行数:3394~3537;代码简介:定义了jQuery.fn.ready,本质是使用Deferred实现的一个执行异步回调函数的机制,在dom加载完毕之后,执行绑定的回调函数;下文是代码的详细分析。代码分析// Deferred对象var readyList;// JQ对象的ready方法// 后续代原创 2015-05-05 00:42:14 · 637 阅读 · 0 评论 -
jQuery源码学习(版本1.11)-事件处理-实例函数
概述本文详细分析jquery-1.11.1.js源码文件行数:568~5269;代码简介:JQ原型jQuery.fn利用extend扩展了事件处理的方法on-增加事件监听,off-移除事件监听,trigger-触发事件等可有JQ对象实例调用的方法,这些方法会用each对JQ对象实例里的每一个节点都执行相对应的工具方法,即JQ对象实例的事件处理,是作用于内部所有原生dom节点的;下文进行原创 2015-05-24 01:16:38 · 788 阅读 · 1 评论 -
jQuery源码学习(版本1.11)-创建jQuery对象
创建jQuery对象的整体架构源码架构分解如下:// 整个架构就是闭包自执行,参数factory是一个函数,闭包最终其实也是执行factory(function( global, factory ) { if ( typeof module === "object" && typeof module.exports === "object" ) { module.exports =原创 2015-03-30 00:52:54 · 694 阅读 · 0 评论 -
js String的replace方法详解
JavaScript String对象的replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。语法如下:stringObject.replace(regexp/substr, replacement)regexp/substr是必须的参数,可以是字符串或正则表达式;replacement也是必须参数,可以是字符串或者函数。一般原创 2015-03-15 23:17:10 · 1810 阅读 · 0 评论 -
jQuery源码学习(版本1.11)-data
概述本分详细分析jquery-1.11.1.js源码文件行数:3617~3954;代码简介:data块代码是jQuery用于缓存数据的代码,两种缓存方式,第一种是对于element和document节点对象,data将其需要缓存的数据缓存在内部缓存jQuery.cache中,element里只保存对应的编号,跟jQuery.cache关联起来,第二种对于其他对象,则直接保存在对象自身里面,原创 2015-05-07 02:13:53 · 729 阅读 · 0 评论 -
jQuery源码学习(版本1.11)-扩展工具函数
概述本文详细分析jquery-1.11.1.js源码文件行数:174~584;代码简介:在定义了extend()函数,并用其扩展了一些常用的工具函数;下文进行详细代码分析。extend():jQuery的继承方法// 同时被jQuery以及jQuery.fn即原型引用,便于后面扩展各自的函数// 扩展进jQuery的函数,可通过jQuery这个命名空间去调用,称之为工原创 2015-04-06 02:19:04 · 655 阅读 · 1 评论 -
jQuery源码学习(版本1.11)-Deferred
概述本分详细分析jquery-1.11.1.js源码文件行数:3251~3391;代码简介:使用jQuery.extend扩展了Deferred和when两个工具函数,其中when算是对Deferred的扩展应用;Deferred函数返回一个Deferred对象,Deferred对象可分三种情况(resolve,reject,notify)分别保存各自的回调函数,这些回调会在Def原创 2015-04-24 00:57:45 · 520 阅读 · 1 评论 -
jQuery源码学习(版本1.11)-构造函数
jquery-1.11.1.js源码文件行数:46~172定义了一些常用的变量,定义了函数jQuery作为创建JQ对象的构造函数,并且重新定义了其原型对象详细代码分析如下:// 定义一个数组deletedIds// 下面的slice,concat,push,indexOf全是JS原生数组的方法var deletedIds = [];var slice = deletedIds.原创 2015-04-06 02:03:38 · 684 阅读 · 0 评论 -
jQuery源码学习(版本1.11)-整体架构
整体分析如下,首先整个代码结构看上去就是一个闭包自执行,闭包执行的好处在于闭包拥有私有的作用域,不会污染全局作用域,最终再将jQuery作为一个命名空间导出到window下,这样代码管理起来非常方便,兼容性好。jquery整个闭包执行,实际是执行了factory()方法,而factory()是作为参数传进去的,因此详细分析源码,就是分析作为参数传入闭包的函数。(function( gl原创 2015-03-30 02:44:17 · 464 阅读 · 0 评论 -
js里使用的各种元素大小尺寸属性总结
div元素:getComputedStyle(element, null).width,getComputedStyle(element, null).height:元素内容区域尺寸,不包含外边距,边框以及内边距(IE8及以下使用element.currentStyle代替getComputedStyle());clientWidth,clientHeight:元素可视区域尺寸,内边距以内原创 2015-01-11 21:39:56 · 1791 阅读 · 0 评论 -
js跨域请求小结
同源策略及跨域网络访问同源的定义:如果两个页面拥有相同的协议(protocol),端口(如果指定),和主机(即域名),那么这两个页面就属于同一个源(origin)。反之就是跨域,以下场景均属于跨域:假设http://www.qq.com是当前的页面,另一个是页面发的请求http://www.qq.comhttp://www.baidu.com/a.js // 域名不同,属于跨域原创 2016-04-09 21:04:45 · 2071 阅读 · 0 评论