初学者一定对Ext大量的命名空间感到不解,其实是非常简单的东西,看完这篇文章就明白了。
比如就用Ext.panel,Ext.layout.BorderLayout这2个命名空间来说吧,Ext是这样创建的:
Ext = {};
Ext.panel = {};
Ext.layout = {};
Ext.layout.BorderLayout = {};
说穿了是啥?对象里面套对象而已,很简单吧?我们来看看namespace的方法
-
namespace : function(){
-
var a=arguments, o=null, i, j, d, rt;
-
for (i=0; i<a.length; ++i) {
-
d=a[i].split(".");
-
rt = d[0];
-
eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
-
for (j=1; j<d.length; ++j) {
-
o[d[j]]=o[d[j]] || {};
-
o=o[d[j]];
-
}
-
}
-
},
-
......
-
......
-
Ext.ns = Ext.namespace;
-
......
-
......
-
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方法的参数,然后用点号分割成数组,依次把空对象递归赋值进去,上面就是系统内建的命名空间
转自:http://sanlin0523.blog.sohu.com/91093047.html
分享到:
相关推荐
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`和`...
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...
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 .... 希望能给初学者一点启示吧。 如果有不明白...
- 使用`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. **对象扩展**:`...
- **命名空间**:使用`Ext.namespace`定义命名空间,例如`Ext.namespace("Ext.cc")`。 - **对象创建**:可以通过传统的JavaScript语法创建对象,然后利用`Ext.apply`方法添加额外的属性和方法。 ```javascript Ext...
17. `namespace`: 创建命名空间,这对于组织代码和避免全局变量污染很有帮助。 18. `num`: 将值转换为数字,如果转换失败,返回`defaultValue`。`defaultValue`不一定是数字,可以根据需要指定。 19. `onReady`: ...