代码改变世界

随笔分类 -  淘宝KISSY分析

淘宝Kissy框架分析【六】

2010-06-15 21:11 by BlueDream, 2066 阅读, 收藏, 编辑
摘要: 现在开始分析kissy-ua.js 浏览器检测部分.源码如下:[代码]这里不会源码做剖析,因为都是比较容易理解. 但现在对于UA浏览器嗅探和特性检测(如jQuery)的孰优孰劣.我认为都有其合适的应用场景.看自己的需求吧.如果需要特性检测可以参考jQuery源码.用法:[代码]如果是目标浏览器那么会返回该浏览器的版本号.如果不是那么就返回0。比如.你想检测浏览器是不是IE并且是IE8 就可以写 J... 阅读全文

淘宝Kissy框架分析【五】

2010-06-15 14:45 by BlueDream, 2932 阅读, 收藏, 编辑
摘要: 继续分析kissy-lang.js8.makeArray函数作用:转化类数组对象为真实的数组.原理:主要需要处理的就是将NodeList转化成真实的数组. 在非IE浏览器都可以通过Array.prototype.slice.call(NodeList)来直接转换.但IE却不支持. 所以IE下只能降级到普通的方法转换.测试用例:[代码]9.filter函数作用:通过回调函数的条件过滤数组项.测试用例... 阅读全文

淘宝Kissy框架分析【四】

2010-06-15 12:00 by BlueDream, 3335 阅读, 收藏, 编辑
摘要: 今天开始分析kissy-lang.js源码如下:[代码]1.isBoolean, isString, isNumber, isArray, isFunction类型判断函数类型判断函数没啥可说基本类型可以用typeof 复制类型使用Object.prototype.toString.call()来监测.注意:(1).isNumber 如果是infinity或NaN应该返回false. 所以加了is... 阅读全文

淘宝Kissy框架分析【三】

2010-06-12 22:35 by BlueDream, 5084 阅读, 收藏, 编辑
摘要: 继续分析kissy.js6.extend函数作用: 这个extend函数是kissy框架面向对象的核心.实现了继承机制.kissy的继承使用了 对象冒充 + 原型继承的混合模式.原理:[代码]测试用例:[代码]7.namespace函数作用: 建立命名空间. 如果该命名空间存在则直接引用.不覆盖. * S.namespace('KISSY.app'); // returns KISSY.app *... 阅读全文

淘宝Kissy框架分析【二】

2010-06-10 22:25 by BlueDream, 6733 阅读, 收藏, 编辑
摘要: 首先,让我们从kissy核心文件夹开始. 第一个文件kissy.js也是主架构文件.源码如下:[代码]首先整个函数通过简单的闭包机制实现了沙箱.然后将win[J]暴露给全局.所以我们就可以J1616.xx引用属性了.1. mix函数作用:将s的属性拷贝给r. ov(默认为true)为true则属性覆盖,为false则不覆盖. wl如果定义了.那么只有当s中含有wl定义的属性才会进行属性拷贝.测试用... 阅读全文

淘宝Kissy框架分析【一】

2010-06-09 22:15 by BlueDream, 12827 阅读, 收藏, 编辑
摘要: 浮躁的时候总需要找点事情去压制一下自己的恐惧心理.正好赶上淘宝Kissy发展在雏形期,便于分解和学习.就花费一段时间来研究一下Kissy的源码.那么先让我们看一下目前整个kissy的架构.然后展开来一点点学习.那么明天我们将进行的是kissy.js的分解学习 阅读全文