第一部分 核心/核心
源码: core/src/Ext.js
首先L 1 - 14 ( 第 1到 第 14 行) ,你可以发现:
EXT 基于 GPL 开源----除非你的东西也GPL开源, 否则必须出钱,才能使用 EXT 4。
作者把赚钱的目标用源码注释方式写清楚了。
接着 L 16 - 17
这2个是文档注释。 @class 表示 Ext 是类@singleton 表示这是 单例模式的类, 也就是说,接下来的成员都是 Ext 直接有的, 而不是 Ext.prototype 。
L 20
var global = this 。 this 就是 window , 全局函数执行时, this 指向 window 。
L 21 - 23
没什么可说的,就是普通变量定义。
L 24
enumerablesTest = { toString: 1 }
这个干什么用?
标准浏览器 对于 for(var i in enumerablesTest){ alert(i) } 会输出 "toString" 因为 toString 已经为自定义成员了。所以 or in 会遍历这个成员, 而 IE6 却只认名字不认人。它不会 输出自定义的 toString 成员,包括其它 系统的成员也 不会。因此,在IE6 需要主动判断是否定义了 toString 。
L 27 - 30
为什么了 typeof Ext === 'undefined' 才创建 Ext ?
因为作者考虑万一之前有定义了Ext,或者说 Ext.js 引入了2次,不能直接覆盖以前的数据。
L 31
Ext.global = global 这个干吗? 保存全局对象。
这样不会让程序太死,而扩展这个库的功能。
L 33 - 37