初学者一定对Ext大量的命名空间感到不解,其实是非常简单的东西,看完这篇文章就明白了。
比如就用Ext.panel,Ext.layout.BorderLayout这2个命名空间来说吧,Ext是这样创建的:
Ext = {};
Ext.panel = {};
Ext.layout = {};
Ext.layout.BorderLayout = {};
说穿了是啥?对象里面套对象而已,很简单吧?我们来看看namespace的方法
1.namespace : function(){
2. var a=arguments, o=null, i, j, d, rt;
3. for (i=0; i<a.length; ++i) {
4. d=a[i].split(".");
5. rt = d[0];
6. eval(‘if (typeof ‘ + rt + ‘ == "undefined"){‘ + rt + ‘ = {};} o = ‘ + rt + ‘;‘);
7. for (j=1; j<d.length; ++j) {
8. o[d[j]]=o[d[j]] || {};
9. o=o[d[j]];
10. }
11. }
12. },
13. ……
14. ……
15. Ext.ns = Ext.namespace;
16. ……
17. ……
18. Ext.ns("Ext", "Ext.util", "Ext.grid", "Ext.dd", "Ext.tree", "Ext.data", "Ext.form", "Ext.menu", "Ext.state", "Ext.lib", "Ext.layout", "Ext.app", "Ext.ux");
首先通过arguments得到namespace方法的参数,然后用点号分割成数组,依次把空对象递归赋值进去,上面就是系统内建的命名空间
分享到:
相关推荐
EXT dojochina Ext命名空间别名主要涉及的是EXT JS框架中的一个重要概念——命名空间(Namespace)及其在中文社区dojochina中的应用。EXT JS是一个用于构建富客户端Web应用程序的JavaScript库,它提供了一种模块化、...
5. `Ext.namespace( String namespace1, String namespace2, String etc )`: 它创建命名空间,有助于组织代码,避免全局变量污染。例如,`Ext.namespace('MyApp.models', 'MyApp.views')`会创建`MyApp.models`和`...
7. `Ext.namespace(String namespace1, String namespace2, String etc)`: 用于创建JavaScript命名空间,帮助组织和避免全局变量污染。例如,`Ext.namespace('MyApp.models', 'MyApp.views')`可以创建`MyApp.models`...
4.Ext.define的命名包含了namespace。 *本例子是简单的实现了一下jsp+ex4的使用,引用了: Ext.form.Panel Ext.data.Model Ext.data.Store Ext.container.Viewport .... 希望能给初学者一点启示吧。 如果有不明白...
8. Renamed Coolite.Ext.Web Namespace to Ext.Net 9. Renamed Coolite.Utilities Namespace to Ext.Net.Utilities 10. Renamed Coolite.Ext.UX Namespace to Ext.Net.UX 11. Renamed root singleton "Ext" class...
- 使用`Ext.namespace()`定义命名空间,例如`CjExt.test`,以避免全局变量冲突。 - `CjExt.test.Person`类的创建展示了EXT构造函数和`Ext.apply()`方法的应用,用于初始化对象属性。 - 类的继承在EXT中通过`Ext....
- `Ext.namespace()`: 创建命名空间。 - `Ext.override()`: 用于扩展或修改已有的类方法。 - `Ext.query()`: 类似于jQuery的选择器,用于选取DOM元素。 - `Ext.removeNode()`: 删除DOM节点。 - `Ext.toArray()`...
ExtJS 中的面向对象编程是通过 Ext.namespace() 函数来实现的,例如 Ext.namespace("Ext.cc");。 ExtJS 中的类继承是通过 prototype 属性来实现的,例如 Ext.cc.Class2.prototype = new Ext.cc.Class1();。 ExtJS 中...
13.2 Ext Framework架构解析........................ 342 13.2.1 主要的第三方包...................... 342 13.2.2 后台类关系图.......................... 342 13.2.3 前台组件关系图...................... 344...
例如,`Ext.alias('namespace.MyApp', 'myApp')`后,我们就可以使用`myApp`代替`MyApp`来引用这个命名空间下的类。 9. **类别名**:类别名是类的简短别名,用于减少代码中的字面量。使用`alias`配置项定义,例如`...
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %> ``` 2. **添加资源管理器**: - 在页面 `<form>` 标签内添加 `ResourceManager` 控件: ```xml <ext:ResourceManager ID=...
Ext.namespace("Mis.Ext"); /** * CRUD面板基类 */ Mis.Ext.CrudPanel = Ext.extend(Ext.Panel, { // ... 具体实现细节省略 }); ``` 要使用这个CRUD面板,需要进一步继承并实现特定的需求,比如文中给出的例子...
8. **Ext.namespace**: 创建命名空间,有助于避免全局变量污染,用于组织代码结构。 9. **Ext.each**: 遍历数组或NodeList,执行提供的回调函数,可以指定作用域。 10. **Ext.apply**: 将一个对象的属性复制到另一...
8. `Ext.namespace(string namespace1, string namespace2, string etc)`:创建命名空间,帮助组织代码,防止命名冲突。 9. `Ext.each(Array/NodeList/Mixed array, Function fn, object scope)`:遍历数组或...
通过`Ext.namespace`可以创建命名空间,类似于Java的包。类的创建和继承则可以通过JavaScript的原型链实现,或者使用ExtJS提供的`Ext.extend`方法。此外,`Ext.apply`可以用于向对象动态添加属性和方法。 获取界面...
1. **命名空间**:使用`Ext.namespace`创建JavaScript命名空间,避免全局变量污染。 2. **类定义**:可以使用传统的JavaScript构造函数方式定义类,也可以使用Ext的`Ext.extend`方法实现继承。 3. **对象扩展**:`...
17. `namespace`: 创建命名空间,这对于组织代码和避免全局变量污染很有帮助。 18. `num`: 将值转换为数字,如果转换失败,返回`defaultValue`。`defaultValue`不一定是数字,可以根据需要指定。 19. `onReady`: ...