1. Name Conventions 命名规范

     1) Classes 类
         a. 类名只能包含数字字母 only contain alphanumeric characters
         b. 允许但不鼓励使用数字  numbers are permitted but discouraged
         c. 不能使用下划线、减号或其他特殊字符
         d. 类要按包名组织,至少需要一个最顶层的唯一包名
         e. 最顶层的包名和类名应该大小写,其他中间名字需小写 top-level namespaces and the actual class names should be CamelCased
         f.  缩略词也应该遵循大小写原则
         g. 非Sencha发布的类不允许使用Ext作为最顶层的包名
 
     2) Source Files  源文件
         a. 类名直接映射成文件路径 names of classes map directly to the file paths
         b. 一个类一个文件
         c. Ext.util.Observable => /path/to/src/Ext/util/Observable.js
 
     3) Methods and Variables 方法与变量
         a. 方法与变量名只能包含数字字母 only contain alphanumeric characters
         b. 允许但不鼓励使用数字  numbers are permitted but discouraged
         c. 不能使用下划线、减号或其他特殊字符
 
     4) Properties 属性
         a. 属性的命名规范与变量的命名规范类似
         b. 静态属性的名称必须全部大写
 
 
2. Declaration 声明
     1) The Old Way
         a. var MyClass = Ext.extend(object, {...});
         b. Ext.ns("My.cool");  My.cool.Window = Ext.extend(Ext.Window, {...});
 
     2) The New Way
         a. Ext.define(className, members, onClassCreated);
         b. Ext.create(className, arguments);
 
3. Configuration 配置
     1) As for EXTJS 4, a dedicated config property was introduced
     2) Configurations are completely encapsulated from other class members
     3) Getter and setter methods for every config property are automatically generated into the class prototype during class creation if methods are not already defined
     4) The auto-generated setter method calls the applyXXX method (if defined on the class) internally before setting the value. You may override the applyXXX method for a config property if you need to run custom logic before setting the value. If your apply method does not return a value, the setter will not set the value. The updateXXX method (if defined) will also be called when a different value is set. Both the applyXXX and updateXXX methods are passed the new value and the old value as params.
     5) As for EXTJS 5, eliminated the need to call initConfig() manually. Only for your own classes that extend Ext.Base, initConfig() still neneds to be called
 
4. Statics 静态成员
     1) 通过配置statics来定义静态成员 static members can ben defined using the statics config
     2) Ext.define('Computer', {
              statics: {
                    instanceCount: 0,
                    factory: function(brand) {
                         return new this({brand: brand});
                    }
               },
               
               config: {
                    brand: null
               }
         });
         var dell = Computer.factory('dell');
 
5. Errors Handling & Debugging 错误处理及调试
     1) 通过Ext.getDisplayName()获取方法的名称。尤其是在需要抛出异常
          throw new Error('['+ Ext.getDisplayName(arguments.callee) +'] something wrong ');
     2) 使用Ext.define()定义的任意类方法在抛出异常时,可以在WebKit浏览器上观察到异常栈(Chrome/Safari)

EXTJS 5 学习笔记1 - Class System的更多相关文章

  1. Java学习笔记25(System类)

    System类,系统类,包含的是静态方法,无法创建对象 这里介绍几个简单的方法,其他一些在后边用到的时候会讲 类方法: currentTimeMillis():获取当前毫秒数 package demo ...

  2. EXTJS 5 学习笔记2 - Components

    1. The Components Hierachy 组件体系       2. XTypes and Lazy Instantiation xtype与延迟初始化        1) 每个compo ...

  3. APUE学习笔记——10.18 system函数 与waitpid

    system函数 system函数用方便在一个进程中执行命令行(一行shell命令). 用法如下: #include <stdio.h> #include <stdlib.h> ...

  4. Java基础学习笔记之:System类;Math类;Arrays类BigInteger,BigDecimal

    System类 在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作.System类不能手动创建对象,因为构造方法被priva ...

  5. Extjs Cmd 学习笔记

    1.sencha app build 命令 <!-- <x-compile> -->                  <!-- <x-bootstrap> ...

  6. 【WPF学习笔记】之 System.Exception 对象名 'XXXX' 无效。

    我在运行vs时候发现项目报错,如下图: 报Exception错误,对象名“XXXXXX”无效. 经过调查得知,因为连接数据库的库名写错了,如下: 对应正确数据库的库名: 把库名改正确,问题就解决了.

  7. A.Kaw矩阵代数初步学习笔记 5. System of Equations

    “矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...

  8. Extjs 学习笔记1

    学习笔记 目   录 1 ExtJs 4 1.1 常见错误处理 4 1.1.1 多个js文件中有相同的控件,切换时无法正常显示 4 1.1.2 Store的使用方法 4 1.1.3 gridPanel ...

  9. system generator学习笔记【02】

    作者:桂. 时间:2018-05-20  23:28:04 链接:https://www.cnblogs.com/xingshansi/p/9059668.html 前言 继续学习sysgen.接触s ...

随机推荐

  1. jquery中filter(fn)的使用研究

    jquery中filter(fn)给出的官方说明是: 筛选出与指定函数返回值匹配的元素集合 这个函数内部将对每个对象计算一次 (正如 '$.each'). 如果调用的函数返回false则这个元素被删除 ...

  2. 在C#中使用属性控制 XML 序列化来解析XML

    今天需要解析一个XML,这个XML和一般情况用.NET的序列化出来的格式不太一样. 我就又补习了一下. 分享一下学习成果吧. 示例代码下载: http://download.csdn.net/deta ...

  3. 内容匹配广告投放技术4:网盟CTR预估(百度文库课程)

    原文:http://wbj0110.iteye.com/blog/2043065 该文是百度文库课程<计算广告学之内容匹配广告&展示广告原理.技术和实践>的课程笔记,感谢百度! 课 ...

  4. Visio 2013 由于形状保护、容器和/或图层属性的设置,无法完全执行此命令

    形状的保护 解决问题:Visio 2013 由于形状保护.容器和/或图层属性的设置,无法完全执行此命令 重要: 本文是由机器翻译的,请参阅免责声明.请在 此处 中查找本文的英文版本以便参考. 禁止对形 ...

  5. [Javascript] Coding interview problem: Scheduler functional way

    Implement a job scheduler which takes in a function f and an integer n, and calls f after nmilliseco ...

  6. java编程思想---对象

    一.对象 对于每种语言来说,都有自己操纵内存中元素的方法. 在java中,一切被视为对象.可是操纵对象的是一个"引用".举个样例,能够比作为遥控器对电视的操作,遥控器就是引用,而电 ...

  7. android 实现qq聊天对话界面效果

    效果图: chatting_item_from.xml <?xml version="1.0" encoding="UTF-8"?><Line ...

  8. HTTP和Socket的区别

    1: HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用. HTTP ...

  9. LeetCode 37 Count and Say

    The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221 ...

  10. Mac环境 MySQL 和 MySQLWorkBench 破解版百度云下载

    最近有小伙伴下载,我正好保存有 正好分享一下 下载路径: Max环境下下载安装 1.下载完直接安装 MySQL安装后,这里可以查看 2.MySQLWorkBench安装完,桌面会有图标 打开后,用lo ...