`

Ext中的Module模式

    博客分类:
  • Ext
阅读更多
在Ext中大量应用了Module pattern,对于新手而言可能会有些不解,关于Module模式可以参见这个链接:www.iteye.com/topic/93650(javaeye翻译)
,英文版yuiblog.com/blog/2007/06/12/module-pattern/
具体而言,一个Module如下:
  1. module = function(){
  2. var count = 0; // Private Variable for the module. Not accessible from outside
  3. var increaseCount = function(){ // Private function. Not accessible from outside
  4. count++;
  5. };
  6. return {
  7. init : function(){ // Priviledged method. Can be called from outside
  8. // Here comes the initialisation code
  9. },
  10. getCount : function(){ // Priviledged method. Can be called from outside
  11. return count;
  12. },
  13. checkCount : function(){
  14. increaseCount();
  15. if (this.getCount() > 10)
  16. alert("count is greater than 10");
  17. }
  18. }
  19. }();
在这种情况下,你只能访问return 部分的代码,其他的代码对于外界都是不可见的。一个典型的访问方法是:
  1. module.getCount();
其他的变量,如count,increaseCount,都是私有的,不能直接从外部访问。
在Ext中,最常见的一个代码格式就是:

  1. module = function(){
  2. var count = 0; // Private Variable for the module. Not accessible from outside
  3. var increaseCount = function(){ // Private function. Not accessible from outside
  4. count++;
  5. }
  6. return {
  7. init : function(){ // Priviledged method. Can be called from outside
  8. // Here comes the initialisation code
  9. },
  10. getCount : function(){ // Priviledged method. Can be called from outside
  11. return count;
  12. },
  13. checkCount : function(){
  14. increaseCount();
  15. if (this.getCount() > 10)
  16. alert("count is greater than 10");
  17. }
  18. }
  19. }();
  20. Ext.onReady(module.init, module);

In the last statement we are doing many things, it executes the module.init method when the document has been completely loaded and sets its scope to module. Setting the scope to module means you can call the checkCount method from inside init method like this.

分享到:
评论
1 楼 javalog 2008-12-03  
明白,证明我之前的模块写法是没错滴..嘿嘿.收藏

相关推荐

    ajax-ext框架

    在项目中引入Ajax-ext库后,可以通过创建组件,设置属性,绑定数据,监听事件等方式构建应用。例如,创建一个简单的表格组件,可以先定义数据源,然后创建表格组件并设置列定义,最后将其添加到页面中。 **五、最佳...

    android中moudle打包aar离线在线模式.doc

    Android 中 Module 打包 AAR 离线在线模式 Android 中的 Module 打包是指将多个模块打包成一个 AAR 文件,并上传到 GitHub 远程仓库中,实现模块之间的依赖关系管理。本文将详细介绍在 Android Studio 中如何实现 ...

    GWT_EXT项目配置全过程

    2. 调试GWT应用:使用GWT的开发模式,可以在浏览器中直接调试Java代码。点击Eclipse中的"Debug As" -> "Google Web Application",Eclipse会弹出一个浏览器窗口,此时可以直接在代码中设置断点进行调试。 六、优化...

    webext-patterns:将 WebExtension 清单的模式转换为正则表达式

    webext 模式 工具的转换和您WebExtension明显的正则表达式来 这可能是不完整的。 请帮我测试它通过添加更多的模式和URL的。 安装 您可以下载并将其包含在您的manifest.json 。 或者使用npm : npm install webext...

    Python自动重新加载模块详解(autoreload module)

    当运行`runner.py`时,`autoreload.py`中的`run_with_reloader`函数会启动守护进程模式。此时,如果对`runner.py`或其他任何导入的模块进行修改并保存,守护进程会检测到这些变化,并自动重启子进程来运行最新的代码...

    arm.Boot.Loader.module.rar_arm loader

    其Boot Loader设计需要考虑ARM处理器的不同模式(如系统模式、Thumb模式等)和存储模型(如大端模式、小端模式),以及中断处理等细节。 **三、Boot Loader模块设计** 在"arm Boot Loader module design code"中,...

    ExtJS动态打包Loader

    Ext JS框架基于Sencha CMD(Command Line Interface)工具,遵循CommonJS规范,采用AMD(Asynchronous Module Definition)模式来组织代码。每个组件、类或功能都可以作为一个模块,模块之间通过依赖关系进行组织。...

    Jorjin AP Module WIFI Bluetooth guide

    内核配置中需要启用一系列选项以构建模块,包括CONFIG_CFG80211、CONFIG_MAC80211、CONFIG_WIRELESS_EXT等。同时还需启用用于校准的选项CONFIG_NL80211_TESTMODE,以及构建内核的其他选项。 接下来,我们了解Jorjin...

    IDE-CF-card-module-to-read-and-write-test.rar_CF_CF卡_cf card_sol

    标题中的“IDE-CF-card-module-to-read-and-write-test.rar”指的是一个关于如何在IDE接口上实现对CF卡进行读写操作的测试模块。这个压缩包包含了相关实验资料和解决方案,是学习嵌入式系统尤其是基于ARM9微处理器和...

    ExtJs中引用的三个js

    2. **核心组件文件**:在开发过程中,我们可能需要引用特定的组件库,如`ext-grid.js`(表格组件)、`ext-form.js`(表单组件)、`ext-tree.js`(树形组件)等。这些文件提供了构建用户界面所需的组件,例如数据网格...

    ExtJS6MinMvcExample

    ExtJS 6引入了现代模块系统,通过AMD(Asynchronous Module Definition)模式加载和组织代码。应用的构建过程会使用Sencha Cmd工具进行优化,生成一个单一的、压缩过的JavaScript文件,以减少HTTP请求,提高页面...

    ABB ACS800变频器调试

    - 在 99.04 参数组中,设定电机传动模式 (DTC) 或 SCALA 模式。通常情况下,建议选择 DTC 模式,此时变频器的设定值为转速。 - 确认设置后,再次按下 `ENTER` 键。 4. **返回当前状态**: - 按下 `ACT` 键回到...

    Linux CC++ 后台开发 面试题目.zip

    - ext2、ext3、ext4等Linux文件系统的特性与区别。 - VFS(虚拟文件系统)的概念及作用。 9. **内核模块编程**: - 内核模块的加载与卸载函数`init_module()`和`cleanup_module()`。 - `module_init()`和`...

    如何用C语言编写一个PHP的C扩展.zip

    #define phpext_my_extension_ptr &my_extension_module_entry #endif /* PHP_MYEXTENSION_H */ ``` 步骤4:构建模块结构 在`my_extension.c`中,创建`zend_module_entry`结构体,它定义了PHP扩展的核心属性。 ``...

    嵌入式系统开发期末复习题.docx

    27. **MODULE_LICENSE**:在内核模块中,`MODULE_LICENSE("GPL")`声明模块遵循GPL许可证。 28. **vi编辑器模式**:vi的第三种模式是可视模式。 操作题部分涉及到Linux基本操作,包括安装操作系统、管理文件、设置...

    Yapi-plugin-export-docx-data-master.zip

    YAPI导出word文件插件,自定义模板,方便有效; 载入模式: 1. yapi plugin --name yapi-plugin-export-docx-data 2. 放入ext中,作为内置插件

    Linux 2.6.28 内核配置选项详解

    - **Ext4 file system (Ext4文件系统)**:Linux中最常用的文件系统之一。 - **FAT file system (FAT文件系统)**:兼容Windows系统的文件系统。 - **NTFS file system (NTFS文件系统)**:支持读写NTFS格式的磁盘。...

Global site tag (gtag.js) - Google Analytics