`

[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
分享到:
评论

相关推荐

    extjs-basex.js

    ExtJS 是一个流行的JavaScript框架,主要用于构建富客户端的Web应用程序。`extjs-basex.js`文件很可能是ExtJS库的一个部分,特别是针对BaseX扩展的功能。BaseX是一个高性能、XML数据库系统,常用于处理XML数据。在...

    Ext导出Excel源码

    5. `ext-all-debug.js`, `ext-all.js`, `ext-base.js`:这些是ExtJS库的文件,`ext-all-debug.js`是包含所有组件和功能的调试版本,`ext-all.js`是压缩和优化过的生产版本,`ext-base.js`是ExtJS的基础库。...

    Ext框架简介-Ext框架简介

    其中 ext-base.js 是框架基础库,ext-all.js 是 extjs 的核心库。 helloWord 示例程序是使用 ExtJS 创建的简单示例程序。首先需要在 HTML 文件中引入 ExtJS 的样式及 ExtJS 库文件,然后使用 Ext.onReady 函数来...

    extjs中文解决方案/Eclipse下的js和ext开发

    <script type="text/javascript" src="<%=contextPath%>/public/js/ext-base.js"> <script type="text/javascript" src="<%=contextPath%>/public/js/ext-all.js"> ``` 2. **加载中文语言包** 为了使ExtJS组件...

    界面框架extjs学习笔记

    - `extjs/adapter/ext/ext-base.js`:EXTJS的基础库,必须先于`ext-all.js`引入。 - `extjs/ext-all.js` 或 `extjs/ext-core.js`:根据需求选择引入完整库或仅核心库。 配置BLANK_IMAGE_URL是解决图像路径问题的一...

    ext入门学习.pdf

    在实际开发中,我们只需要引入必要的CSS、JavaScript文件,如`ext-all.css`、`ext-base.js`和`ext-all.js`。 编写第一个“Hello World”程序,可以创建一个HTML文件,引入ExtJS的库文件,并在`onReady`函数中设置一...

    很好的Extjs学习文档

    Ext JS 是一个强大的JavaScript开发框架,专用于构建富客户端Web应用程序。它以其丰富的用户界面组件和高效的Ajax交互闻名。在本文中,我们将深入探讨Ext JS的基础知识,包括框架简介、环境搭建、HelloWorld示例以及...

    Ext框架简介.ppt

    <script type="text/javascript" src="extjs/adapter/ext/ext-base.js"> <script type="text/javascript" src="extjs/ext-all.js"> ``` 然后,可以通过`Ext.onReady`函数在页面加载完成后执行特定的JavaScript代码...

    Ext教程_javakc

    <script type="text/javascript" src="extjs/adapter/ext/ext-base.js"> <script type="text/javascript" src="extjs/ext-all.js"> Ext.onReady(function() { Ext.MessageBox.alert("hello", "Hello World"); }); ...

    Extjs简明总结(教程)

    通常,这包括`resources/css/ext-all.css`和`extjs/adapter/ext/ext-base.js`以及`extjs/ext-all.js`。一旦这些文件加载完成,你可以通过`Ext.onReady`函数来启动你的应用程序,这是每个ExtJS应用的入口点。 ExtJS...

    ExtJs部署及使用方法

    - `extEngine/adapter/ext/ext-base.js`: 适配器脚本文件。 - `extEngine/resources/css/ext-all.css`: ExtJs默认样式表。 - `js/ext-lang-zh_CN-GBK.js`: 支持中文语言包(如果需要)。 2. **自定义JavaScript...

    ext入门学习文档

    #### 二、ExtJS 能做什么? 1. **动态创建 Web 组件**:允许开发者根据需要动态创建和更新用户界面组件。 2. **动态维护 DOM 对象**:能够高效地管理Web页面的DOM(Document Object Model)树,使用户界面更加灵活...

    让我们开始EXTJS之旅

    <script type="text/JavaScript" src="ExtJS2/adapter/ext/ext-base.js"> <script type="text/JavaScript" src="ExtJS2/ext-all.js"> Ext.BLANK_IMAGE_URL = 'ExtJS2/resources/images/default/s.gif'; Ext....

    extjs实例教程附带源码

    <script type="text/javascript" src="./scripts/ext/adapter/ext/ext-base.js"> <script type="text/javascript" src="./scripts/ext/ext-all.js"> <script type="text/javascript" src="./scripts/ext/build/...

    EXTJS.docx

    - **ext-base.js**:包含EXT的核心代码,是框架的基础,负责处理DOM操作、事件管理等底层任务。 - **ext-core.js**:封装了EXT的核心组件,如面板、按钮、网格等,是构建用户界面的关键。 - **ext-core-debug.js**:...

    EXT 2.2 的HELLO WORD 创建详程

    这里引入了两个JavaScript文件,`ext-base.js`是Ext JS的基础库文件,而`ext-all.js`包含了Ext JS的全部功能。这两个文件缺一不可,它们为后续的JavaScript代码提供了必要的环境。 c. JavaScript代码逻辑: ```...

    ext-2.3.0+CKEditor 3.0.1+ckfinder_asp_1.4配置详解及工程源码

    <script type="text/javascript" src="ext-2.3.0/adapter/ext/ext-base.js"> <!-- ENDLIBS --> <script type="text/javascript" src="ext-2.3.0/ext-all.js"> <script type="text/javascript" src="js/...

    ext js教程PPT

    ExtJS 是一个强大的JavaScript库,专门用于构建富客户端(RIA)Web应用程序。它以其美观的用户界面组件和高效的Ajax交互而著称。本教程PPT将深入探讨ExtJS的核心概念和使用方法。 首先,让我们从ExtJS的简介开始。...

    ExtJS 学习专题(一) 如何应用ExtJS(附实例)

    JavaScript文件包括基础库文件adapter/ext/ext-base.js和核心库文件ext-all.js。示例如下: ```html <!DOCTYPE html> 示例页面 路径/resources/css/ext-all.css"/> <script type="text/javascript" src="路径/...

Global site tag (gtag.js) - Google Analytics