我正在使用ExtJs 5和SenchaCmd。
在一个包中,我在几个文件中定义了几个类,如下所示:
// Bar1.js
Ext.define('Foo.Bar1', {
...
});
// Bar2.js
Ext.define('Foo.Bar2', {
...
});
现在我想要"增强" Foo名称空间包含一些常用工具:
Ext.ns('Foo');
Foo.tool1 = function() { ... }
Foo.tool2 = function() { .... }
Foo.generalProp1 = 42;
(...)
什么是更好的地方和实践声明这样,以便Sencha编译器也嵌入这个文件?
是否可以"要求" (在某种程度上)我们需要一个类的命名空间?
答案 0 :(得分:3)
您可以使用新的Ext:
中的statics
Ext.define('Foo', {
// declare static members
statics: {
method: function(){ return "static method"; }
}
});
// Define class under Foo namespace
Ext.define('Foo.OtherClass', {
method: function(){ return "instance method"; }
});
// Create instance of Foo.OtherClass
var o = Ext.create('Foo.OtherClass');
// Use static member
console.log(Foo.method());
// Use instance member
console.log(o.method());
然后,您可以将Foo
命名空间视为类,并将其放置为任何其他类。
那么显然你也可以要求这个命名空间,因为它也是类。