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
分享到:
相关推荐
在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...
在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...
在ExtJS 4.x框架中,ComboboxTree是一种特殊的组件,它将传统的下拉框与树形结构结合在一起,提供了一种更为灵活的用户输入方式。这种组件在数据选择上非常实用,尤其当数据层级关系复杂时,可以方便地进行多选或...
在EXTJS3中,`Ext.PagingToolbar()` 是一个非常重要的组件,用于在大量数据的网格或视图中实现分页功能。这个组件允许用户轻松地浏览和操作大量的记录,而不需要一次性加载所有数据,从而提高了应用程序的性能和用户...
### ExtJs选中 `var editor = new Ext.ux.grid.RowEditor` 详解 在Web开发领域,特别是使用ExtJs框架进行复杂用户界面构建时,`RowEditor` 是一个非常实用的功能,它允许用户直接在表格行内编辑数据,极大地提高了...
代码如下: Ext.onReady(function() { Ext.Msg.alert(‘提示’, ‘逗号分隔参数列表’); //这种方式非常常见的 }); 效果图: 代码如下: Ext.onReady(function() { //定义 JSON(配置对象) var config = { ...
2. **Ext.form组件详解**: Ext.form组件是ExtJS中的核心部分,用于构建复杂的表单。它支持各种输入控件(如文本框、选择框、复选框等)、验证机制、按钮和布局。学习这部分内容将掌握如何创建、配置和管理表单元素...
在本篇中,我们将深入探讨ExtJS中的`ext.tree`,这是一种强大的树形组件,用于展示层次结构的数据。 `ext.tree` 是ExtJS中的TreePanel,它允许开发者创建可交互的树形结构,通常用于展示文件系统、组织架构或层级...
在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...
ExtJS之Ext.Ajax.request用法详解.docx
ExtJS之Ext.Ajax.request用法详解.pdf
详解 显示一个确认对话框,用来代替JavaScript标准的confirm()方法,具有两个按钮“是”和“否”如果为其提供一个回调函数,则该函数将在单击按钮后被调用(包括右上角的推出按钮),所单击按钮的id将被作为...
ExtJs提供了Ext.Ajax.request方法来进行Ajax请求,但默认情况下,该方法不支持waitMsg属性,不像fp.form.submit方法提供了waitTitle和waitMsg属性来实现等待提示。为了解决这一限制,我们可以采用Ext.MessageBox的...
### ExtJS 多文件上传 UploadDialog For ExtJS3.x #### 概述 在Web开发领域,特别是使用ExtJS框架进行界面设计时,文件上传功能是必不可少的一部分。然而,随着ExtJS版本的更新,原有的多文件上传组件可能不再兼容...
ExtJS之Ext.Ajax.request用法详解 (2).docx
ExtJS之Ext.Ajax.request用法详解 (2).pdf
本文将深入探讨Ext.util.Format.Number()函数,它是ExtJS 4.0中的一个重要工具,用于格式化数字。 `Ext.util.Format`是ExtJS中一个非常实用的工具类,包含了一系列用于字符串、日期和数值等类型的数据格式化的静态...
在EXTJS 4.x框架中,`tabpanel`是用于创建多标签界面的组件,它可以方便地组织和切换多个视图。动态加载panel和HTML到tabpanel是提高应用性能和用户体验的有效方式,因为它允许按需加载内容,减少初始页面加载时间。...
`ext-3.4.0` 文件可能是ExtJS 3.4.0版本的源码或者库文件,包含所有必要的JavaScript和CSS资源,可以直接在项目中引用。 综上所述,"extjs3.x 官方示例以及chm版api"为开发者提供了一套完整的ExtJS 3.x 学习和开发...
在EXTJS这个强大的JavaScript框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们都用于操作DOM元素,但它们之间存在着微妙的差异。了解这些差异对于优化代码性能和理解EXTJS的工作机制至关重要。 首先,`Ext....