Ext.namespace( String namespace1, String namespace2, String etc ) : void
创建命名空间:
如Ext.namespace("Company","MyNS.mydata","Data.format.string")
然后可以创建如MyNS.mydata.doit=function(){…}的接口
注:命名空间的简易调用:Ext.ns(),在Ext Api中未给出此用法。
Ext中namespace的作用
关键字: Ext namespace usage
Ext中在每一个页面中添加一个namespace呢,就像下面的代码:
- // create namespace
- Ext.namespace('myNameSpace');
- // create application
- myNameSpace.app = function() {
- // do NOT access DOM from here; elements don't exist yet
- // private variables
- // private functions
- // public space
- return {
- // public properties, e.g. strings to translate
- // public methods
- init: function() {
- alert('Application successfully initialized');
- }
- };
- }(); // end of app
作用呢就是用来封装一个global范围对象的属性和方法,以避免和其它的对象的属性和方法发生冲突,定义在return块中的方法和属性是公共的,外界可以直接访问,而其余的属性则不允许外界访问,通过这种方式,Ext较好的实现了在JavaScript中定义属性的public/private 问题。
比较一下我在另外一篇blog中的js对象的private/public/protected的定义,就可以看出这种方法的好处:清晰。
下面是Ext.nameSpace的API:
- namespace( String namespace1, String namespace2, String etc ) : void
- Creates namespaces to be used for scoping variables and classes so that they are not global. Usage: Ext.namespace('C...
- Creates namespaces to be used for scoping variables and classes so that they are not global. Usage:
- Ext.namespace('Company', 'Company.data');
- Company.Widget = function() { ... }
- Company.data.CustomStore = function(config) { ... }
- Parameters:
- * namespace1 : String
- * namespace2 : String
- * etc : String
- Returns:
- * void