Ext.namespace("App.common.util");
App.common.util.DataGetter = function(){
从上面例子可以看出,一个字符串("App.common.util"),经过Ext.namespace处理之后,便能像正常的js代码对象一样可以任意的添加属性(MyFormValidater 、DataGetter )。到底是什么动作可以产生这样的效果呢。看源代码(以下代码出自3.2版本):
view plaincopy to clipboardprint?
namespace : function(){
经过上面的处理之后,我们上面的例子代码实际上等效于:
window['App'] = {};
window['App'] ['common'] = {};
window['App'] ['common'] ['util']= {};
由于window是一个全局对象,所以:
App = {};
App.common = {};
App.common.util = {}
由上面的分析,命名空间其实就是window全局对象下面的各个对象树(还可以定义App.common.form等等)