http://hintcnuie.iteye.com/blog/146813
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
时间: 2024-11-08 14:38:27