非常适合新手的jq/zepto源码分析05
Posted 小结巴巴吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非常适合新手的jq/zepto源码分析05相关的知识,希望对你有一定的参考价值。
zepto的原型 $.fn 属性:
constructor //构造行数
forEach: emptyArray.forEach, //都是原生数组的函数
reduce: emptyArray.reduce,
push: emptyArray.push,
sort: emptyArray.sort,
splice: emptyArray.splice,
indexOf: emptyArray.indexOf,
concat //合并数组,这里还包含了合并节点集合
add //添加节点集合
is //匹配是否包含该选择器
find: function(selector){ var result, $this = this if (!selector) result = $() else if (typeof selector == \'object\') result = $(selector).filter(function(){ var node = this return emptyArray.some.call($this, function(parent){ return $.contains(parent, node) }) }) else if (this.length == 1) result = $(zepto.qsa(this[0], selector)) else result = this.map(function(){ return zepto.qsa(this, selector) }) return result },
emptyArray.some() http://www.cnblogs.com/jiebba/p/6514067.html 可以看看js几种遍历不同
pluck 根据属性来返回节点集合
// 设置宽高 ;[\'width\', \'height\'].forEach(function(dimension){ var dimensionProperty = dimension.replace(/./, function(m){ return m[0].toUpperCase() }) $.fn[dimension] = function(value){ var offset, el = this[0] if (value === undefined) return isWindow(el) ? el[\'inner\' + dimensionProperty] : isDocument(el) ? el.documentElement[\'scroll\' + dimensionProperty] : (offset = this.offset()) && offset[dimension] else return this.each(function(idx){ el = $(this) el.css(dimension, funcArg(this, value, idx, el[dimension]())) }) } })
//添加函数`after`, `prepend`, `before`, `append`,
adjacencyOperators.forEach(function(operator, operatorIndex) { var inside = operatorIndex % 2 //=> prepend, append $.fn[operator] = function(){ // arguments can be nodes, arrays of nodes, Zepto objects and html strings var argType, nodes = $.map(arguments, function(arg) { var arr = []
zepto.Z.prototype = Z.prototype = $.fn
绑定到原型上面
window.Zepto = Zepto window.$ === undefined && (window.$ = Zepto) //绑定在全局
代码仅供参考,具体功能可以自己扩展。
个人博客 :很多好用的 npm 包 , 可以看看 https://gilea.cn/
http://www.cnblogs.com/jiebba/p/6529854.html
http://www.cnblogs.com/jiebba 我的博客,来看吧!
如果有错误,请留言修改下 哦!
以上是关于非常适合新手的jq/zepto源码分析05的主要内容,如果未能解决你的问题,请参考以下文章
Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段
Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段
Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段