`

[ExtJS3.2源码每天一小时](1)ext-base.js做了什么(之二)

EXT 
阅读更多
我们今天来继续说ext-base中到底做了什么,主要还是针对Ext这个核心对象。
1.namespace 命名空间定义 所谓命名空间,从根本上说就是对象嵌套对象
引用

namespace : function(){
            var o, d;
            //循环参数列表
            Ext.each(arguments, function(v) {
                //根据“.”将命名空间层级截开
                d = v.split(".");
                //定义最外层命名空间
                o = window[d[0]] = window[d[0]] || {};
                //生成除最外层命名空间的相关对象
                Ext.each(d.slice(1), function(v2){
                    o = o[v2] = o[v2] || {};
                });
            });
            return o;
        },

下面举个例子来详细说明:
var a = Ext.namespace("Ext.diy.xhr","JS.Util");
最终执行完后 a对应的引用 与 Util对应的引用是相同的。

下面我们来分析它的执行流程:
1.Ext.each(arguments, function(v){})遍历接收到的参数。
  上面的例子对应的就是“Ext.diy.xhr","JS.Util"这两个参数了。
2.v.split(".");对于每个参数,根据"."将层级截取出来。
3.先生成第一层的空间对象。
   o = window[d[0]] = window[d[0]] || {};
4.将第一层排外
   d.slice(1)
5.继续循环除第一层之外的其他层,嵌套生成对象。
   o = o[v2] = o[v2] || {};

通过以上的分析,我们不难得出,a最后拿到的引用是Util对象的引用。

通过命名空间的定义,形成了一系列的对象嵌套引用,在这种情况下,所有的层级访问必须带有空间层级,例如:访问diy对象,就必须为Ext.diy,访问Util对象,就必须为JS.Util等,无法单独访问diy和Util
分享到:
评论

相关推荐

    ext 2 简单例子(内附ext-all.css, ext-base.js, ext-all.js三个必不可少的文件)

    ext 是 ExtJs 的简称,是一个强大的js 类库。本资源主要包括三个大的文件ext-all.css,ext-base.js,ext-al.js。在引用ext 类库的时候,这三个文件必不可少。另外我还提供了ext2的一个简单例子,以便大家学习交流。

    extjs-basex.js

    extjs-basex.js extjs-basex.js extjs-basex.js

    ext-4.2.1.883.jsb2

    从spket IDE 官网下载。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.*版本。spket自动提示ExtJs4,需要ext4.2.1.jsp2文件。

    ExtJS入门教程

    <script type="text/javascript" src="extjs3.2/adapter/ext/ext-base.js"> <script type="text/javascript" src="extjs3.2/ext-all-debug.js"> <script type="text/javascript" src="extjs3.2/ext-lang-zh_...

    ext-2.2.zip

    在CDH使用oozie 的时候需要安装ext-...我用之前的ext版本 当只有一页数据时,页码导航不会灰色,换成ext2.2就正常了。页码导航条中的刷新按钮也有小变化。 另外界面美化了很多。Ext.form.ComboBox 的样式就很漂亮!

    Extjs 6.2 最新sdk ext-6.2.0-gpl.zip

    官方最新版本Extjs6.2版本sdk,创建新项目的时候需要用, 全面的核心框架,具有最新的Javascript标准支持 新的漂亮组件和主题,以创建漂亮的企业应用程序 现代工具链,用于构建优化,高性能,通用的应用程序 用于可视...

    ext-7.0.0-gpl.zip

    ext-7.0.0-gpl.zip

    ext-lang-en.js和ext-lang-zh_CN.js

    Extjs中实现国际化要用到的文件ext-lang-zh_CN.js和ext-lang-en.js

    ext-3.3.1.rar

    extjs ajax 框架 extjs ajax 框架extjs ajax 框架

    ext-4.2.0.663 EXTJS官方最新版7z压缩

    ext-4.2.0.663 EXTJS官方最新版7z压缩 为了上传方便,使用了7z极限压缩,解压时请使用7z,以防文件损坏

    ext-all.js

    extjs3.3 格式化好的ext核心文件

    ext-3.2.0.7z

    ext-3.2.0.7z

    Extjs3.4+Ext-core.pdf+轻松搞定Extjs.pdf

    Extjs3.4 Ext-core.pdf 轻松搞定Extjs.pdf Extjs学习笔记 里面有3.4的开发包,附属:Ext-core.pdf 轻松搞定Extjs.pdf Extjs学习笔记

    ext-5.1.0.jsb2

    从spket IDE 官网下载。 文件名: ext-5.1.0.jsb2 对应版本ext-5.1.*版本。spket自动提示ExtJs5,需要ext-5.1.0.jsb2文件。

    extjs jsb文件(ext-4.2.1.883.jsb2)

    从ext官方论坛上下的。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.1.883

    ext-4.2.1.883.zip

    extjs4.2.1.883 差不多是extjs 4.0 版本中非常靠后的版本了。在这个大版本下最稳定的版本了。

    Spket_ExtJS提示工具ext-core-dev.js.zip

    软件介绍: Spket的ExtJS提示工具,内附需要加入ExtJS的提示内容文件ext-core-dev.js ,所需要的都整合为一个压缩包,一步到位直接使用。featurespluginsext-core-dev.js

    ExtJs入门实例

    1. ExtJs2.0学习系列(1)--Ext.MessageBox 2. ExtJs2.0学习系列(2)--Ext.Panel 3. ExtJs2.0学习系列(3)--Ext.Window 4. ExtJs2.0学习系列(4)--Ext.FormPanel之第一式 5. ExtJs2.0学习系列(5)--Ext.FormPanel之第二式 ...

    ext-4.2.1-gpl.zip

    ExtJs4环境,不包括例子,太大了没法上传

    extjs-Ext.ux.form.LovCombo下拉框

    extjs多选下拉框,Ext.ux.form.LovCombo,extjs 以修复多选下拉框火狐下取不到值的问题,火狐下div不显示背景色的问题

Global site tag (gtag.js) - Google Analytics