`
liusu
  • 浏览: 171195 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ExtJS Ext.namespace详解

    博客分类:
  • js
阅读更多
Ext.namespace的作用是Creates namespaces to be used for scoping variables and classes so that they are not global。

具体的创建代码很简单,我开始不理解,因为没有看到任何return语句,创建的package不知道怎么可以被引用到。阅读源码解惑:


/*
 * 这段代码来自ExtJs。是Ext.namespace()的实现。
 * 里面的console语句是我自己实现的。  
 */
function ns(){
            var a=arguments, o=null, i, j, d, rt;
            for (i=0; i<a.length; ++i) {
                console.log("deal with "+a[i]);
                d=a[i].split(".");
                rt = d[0];
				/*
				 * 这句话是关键:理解成
				 * if(typeof abc == 'undefined'){
				 *    abc = {}; //abc对象就是这样定义。
				 * }
				 */ 
                eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
                console.log('RT is ' +rt);
                console.log("O is " + typeof(o) + "name " + o.name);
                for (j=1; j<d.length; ++j) {
                    console.log("Append attr " + d[j] + "as object");
                    o[d[j]]=o[d[j]] || {};
                    o=o[d[j]];
                }
            }
        }

//这句话其实会定义两个对象,分别是abc和kk。他们都的宿主都是window. abc有d,dd,ddd三个属性。而kk对象有a,b两个属性。
ns('abc','abc.d','abc.dd','abc.ddd','kk','kk.a','kk.b');
console.log("----------------");
console.dir(kk);
console.log("----------------")
console.dir(abc);
//验证一下他们的宿主
console.dir(window);



Firebug果然是个宝啊。。。

结果看下面的截图:

  • 大小: 119.6 KB
4
0
分享到:
评论
7 楼 tongwawa 2012-08-03  
好!!!!!!
6 楼 liusu 2009-11-14  
截图的任务栏泄露了。。。
5 楼 andy_ghg 2009-11-14  
哦...我看到截图了汗一个....
4 楼 andy_ghg 2009-11-14  
Rooock 写道
没看明白..
LZ的是window7 ?


从哪里看出来他用的是Windows 7?
3 楼 liusu 2009-11-13  
是的,我用的win7
2 楼 Rooock 2009-11-13  
没看明白..
LZ的是window7 ?
1 楼 andy_ghg 2009-11-13  
拜读,确实解开了我心中的一大疑惑.非常感谢

相关推荐

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

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

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    在ExtJS 4.x框架中,ComboboxTree是一种特殊的组件,它将传统的下拉框与树形结构结合在一起,提供了一种更为灵活的用户输入方式。这种组件在数据选择上非常实用,尤其当数据层级关系复杂时,可以方便地进行多选或...

    EXTJS3 Ext.PagingToolbar() 快捷键应用

    在EXTJS3中,`Ext.PagingToolbar()` 是一个非常重要的组件,用于在大量数据的网格或视图中实现分页功能。这个组件允许用户轻松地浏览和操作大量的记录,而不需要一次性加载所有数据,从而提高了应用程序的性能和用户...

    ExtJS Ext.MessageBox.alert&#40;&#41;弹出对话框详解

    代码如下: Ext.onReady(function() { Ext.Msg.alert&#40;‘提示’, ‘逗号分隔参数列表’&#41;; //这种方式非常常见的 }); 效果图: 代码如下: Ext.onReady(function() { //定义 JSON(配置对象) var config = { ...

    Extjs3.x入门学习

    2. **Ext.form组件详解**: Ext.form组件是ExtJS中的核心部分,用于构建复杂的表单。它支持各种输入控件(如文本框、选择框、复选框等)、验证机制、按钮和布局。学习这部分内容将掌握如何创建、配置和管理表单元素...

    关于extjs ext.tree

    在本篇中,我们将深入探讨ExtJS中的`ext.tree`,这是一种强大的树形组件,用于展示层次结构的数据。 `ext.tree` 是ExtJS中的TreePanel,它允许开发者创建可交互的树形结构,通常用于展示文件系统、组织架构或层级...

    Ext.Ajax.request2.x实现同步请求

    在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...

    Extjs Ext.MessageBox.confirm 确认对话框详解

    详解 显示一个确认对话框,用来代替JavaScript标准的confirm&#40;&#41;方法,具有两个按钮“是”和“否”如果为其提供一个回调函数,则该函数将在单击按钮后被调用(包括右上角的推出按钮),所单击按钮的id将被作为...

    ExtJs的Ext.Ajax.request实现waitMsg等待提示效果

    ExtJs提供了Ext.Ajax.request方法来进行Ajax请求,但默认情况下,该方法不支持waitMsg属性,不像fp.form.submit方法提供了waitTitle和waitMsg属性来实现等待提示。为了解决这一限制,我们可以采用Ext.MessageBox的...

    ExtJS 多文件上传 UploadDialog For ExtJS3.x

    ### ExtJS 多文件上传 UploadDialog For ExtJS3.x #### 概述 在Web开发领域,特别是使用ExtJS框架进行界面设计时,文件上传功能是必不可少的一部分。然而,随着ExtJS版本的更新,原有的多文件上传组件可能不再兼容...

    extjs4.x tabpanel 动态加载panel和html例子

    在EXTJS 4.x框架中,`tabpanel`是用于创建多标签界面的组件,它可以方便地组织和切换多个视图。动态加载panel和HTML到tabpanel是提高应用性能和用户体验的有效方式,因为它允许按需加载内容,减少初始页面加载时间。...

    extjs3.x 官方示例以及chm版api

    `ext-3.4.0` 文件可能是ExtJS 3.4.0版本的源码或者库文件,包含所有必要的JavaScript和CSS资源,可以直接在项目中引用。 综上所述,"extjs3.x 官方示例以及chm版api"为开发者提供了一套完整的ExtJS 3.x 学习和开发...

    Ext.get与Ext.fly 的区别

    在EXTJS这个强大的JavaScript框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们都用于操作DOM元素,但它们之间存在着微妙的差异。了解这些差异对于优化代码性能和理解EXTJS的工作机制至关重要。 首先,`Ext....

    ExtJs3.* 分页树 Ext.ux.tree.PagingTreeLoader

    ExtJs 3.x 分页树(Ext.ux.tree.PagingTreeLoader)是一个强大的扩展,它在处理大量数据时尤其有用,因为树形结构通常需要显示大量的层级和节点。这个组件引入了分页功能,允许用户逐步加载树节点,而不是一次性加载...

    Ext.ux.UploadDialog.zip

    这个"Ext.ux.UploadDialog.zip"压缩包包含了EXTjs的UploadDialog组件,方便开发者在自己的项目中直接使用。 UploadDialog组件的核心功能是提供一个用户友好的界面,让用户能够选择并上传文件到服务器。这个组件通常...

    Ext.Ajax.request跨域

    标题"Ext.Ajax.request跨域"指出我们将探讨如何使用ExtJS库中的Ajax模块进行跨域请求。Ext.Ajax.request是ExtJS提供的一种发起Ajax请求的方式,它允许开发者向服务器发送异步HTTP请求。然而,由于浏览器的同源策略...

    ExtJs选中var editor = new Ext.ux.grid.RowEditor详解

    ### ExtJs选中 `var editor = new Ext.ux.grid.RowEditor` 详解 在Web开发领域,特别是使用ExtJs框架进行复杂用户界面构建时,`RowEditor` 是一个非常实用的功能,它允许用户直接在表格行内编辑数据,极大地提高了...

    ExtJS ToolTip功能

    #### 知识点详解 在ExtJS中,`ToolTip`功能是一种非常实用且灵活的功能,它允许用户在鼠标悬停在某个元素上时显示额外的信息。这种特性对于提高用户界面的可用性和用户体验尤其有用。本文将详细介绍如何在ExtJS中...

    ExtJS 3.4.0中的 ext.jsb2 文件

    在3.4.0版本中,`ext.jsb2` 文件是一个关键组成部分,它对于理解和开发基于ExtJS的应用程序至关重要。这个文件的缺失可能会对升级到4.0.0版本的开发者造成困扰,因为4.0.0版本不再包含这个文件,但幸运的是,它可以...

Global site tag (gtag.js) - Google Analytics