jQuery源码研究:选择器模块所用方法(1)
时间:2019-01-11
本文章向大家介绍jQuery源码研究:选择器模块所用方法(1),主要包括jQuery源码研究:选择器模块所用方法(1)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Sizzle
模块第二篇。
顺序看下去,看模块所用的方法。
2、createCache()
方法,创建一个受限的键值对类型缓存。返回的是一个函数,
function createCache(){
var keys = [];
function cache( key, value ){
//向数组`keys`末尾添加元素时,返回新的长度。
if( keys.push( key + ' ' ) > Expr.cacheLength ){
//新的数组长度大于Expr.cacheLength时,删除数组当前首位的元素在对象cache中的缓存
delete cache[ keys.shift() ];
}
//返回 缓存后的对象
return ( cache[ key + ' ' ] = value );
}
//返回缓存方法
return cache;
}
返回的cache
函数,个中实现解释:Expr.cacheLength
就自定义的长度,默认值为50
。
3、markFunction()
标记一个特定的函数
function markFunction( fn ){
fn[ expando ] = true;
return fn;
}
为fn
函数添加一个唯一值的参数并返回。expando
是一个字符串,expando = "sizzle" + 1 * new Date()
。
4、assert()
方法,检测所用元素是否可用。看assert这个单词的含义即知,是一个断言方法。该方法主要用在检测元素是否可用方面。
function assert( fn ){
var el = document.createElement( 'fieldest' );
try {
return !!fn(el);
} catch(e) {
return false;
} finally { // try catch语句无论有无异常都执行finally
//从默认父节点删除自身
if( el.parentNode ){
el.parentNode.removeChild( el );
}
//在IE中释放内存 -- 兼容性
el = null;
}
}
Sizzle
模块第三篇。
5、addHandle()
方法:为所有指定的属性添加处理函数
function addHandle( attrs, handle ){
var arr = attrs.split("|"), //将字符串attrs根据符号|分割成数组
i = arr.length;
while( i-- ){
Expr.attrHandle[ arr[i] ] = handler; //将handler函数添加到attrHandle对象的arr[i]属性中
}
}
喜欢本文请扫下方二维码,关注微信公众号: 前端小二,查看更多我写的文章哦,多谢支持。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- max os 安装各种问题/Error解决方法
- 不要启用 net.ipv4.tcp_tw_recycle
- 利用SSH(无密码)免登录来节省你的生命
- 深入linux下磁盘Disk,分区Partition,挂载Mount
- 净化Git之rebase变基的使用
- Linux内存管理 一个进程究竟占用多少空间?-VSS/RSS/PSS/USS
- Bash:选择结构之case
- ElasticSearch的Reindex
- 10行Python代码自动清理电脑内重复文件,解放双手!
- 【投稿】刀哥:Rust学习笔记 3
- 为你的数据添加置信区间
- Linux磁盘管理
- Vue项目中简单的store模式
- 5分钟学linux命令之split
- 分母为0一定会抛异常吗?