以下是阅读YUI3中yui-base.js的YUI类阅读笔记,由于并没有使用过yui3就进行源代码阅读,很多地方还是不理解的 尤其对于yui2和yui3最大的区别体会还不是很深
1,为什么用一个 (function(){}) 包住代码?防止变量的全局化?
2,_startTime 实例构建时间 因为他已经把实例_instances作为一个可控对象
3,add 绑定事件 w3c的绑定方式(包含对冒泡事件的捕获 (!!capture)为什么要写成这样呢?)
和ie的绑定方式
4,remove 删除绑定方式 w3c和ie方式 为什么这里 只写 !!capture
5,globalListener 全局监听器 需要Env的支持
6,_APPLY_TO_WHITE_LIST 一群不知道干什么的参数
7,SLICE 数组切割引用
8,如果YUI没有被定义,就定义一个基础类 使用了 typeof YUI === 'undefined' || !YUI
9,不明白Y的使用区别
10,使用原形进行构建方法定义
11,_init 初始化YUI实例
12 _init中 参数有 win/debug/userBrowserConsole/throwFail是一些基础参数
13 _init中 将入参o赋予 Y.config
14 _init中 定义了一个Y.Env 定义了 modes _idx _used _attached _yidx _uidx _loaded
15 v.indexOf('@') 判断是否是测试版本 并赋给version 并在Env._loader[v]中添加一个对象
16 由于是实例控制YUI 一定发现已经存在 YUI.Env 就都加一个版本...
17 Y.constructor 指向 YUI
18 _setup方法 使用了一个use方法 主要是用来注册模块的 并且合并了参数
19 applyTo 找到某个实例应用某个白皮书规定的的apply方法 不知道干什么
20 add 注册一个模块
21 _attach 不知道绑定什么 好像和模块有关
22 user 使用一个模块 这个应该很重要 但是目前还没用过 初看代码 作用好像是通过loader类访
问服务器上的js 并把js变成类来使用
23 namespace 命名空间 这段代码充分利用了js动态语言的特性
24 log 如果使用了log模块 那么就被代替
25,error 输错错误时,判断是使用js默认输出方式还是消息打印机制
26,guid 给一个实例生成唯一的id,并可以指定前缀
27,返回某个对象含有guid
28,全局变量和实例属性拷贝
29,设置一些onload的事件