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. MATLAB数据处理快速学习教程

    转自:http://blog.csdn.net/abcjennifer/article/details/7706581 本篇内容集合了MATLAB中的基本操作.数据存储与计算.数据的直线与曲线拟合与画 ...

  2. python数据库访问

    取得rs,使用,报错 sqlite3.Cursor' object has no attribute '__getitem__' 原因:使用时conn已经关闭了. 解决:用fetchall取出传递回来 ...

  3. 微信小程序自定义数据分析试水

    昨晚收到小程序自定义分析的内测邀请,简单试用了一下.说明挺长的,大概是这个意思: 一.定义一系列事件,对其进行统计 事件可以对页面中的这些事件进行追踪 click enterPage leavePag ...

  4. ORA-01843: 无效的月份,执行sql语句更改为美国语言后仍然失败的解决办法

    ORA-01843: 无效的月份失败的 sql 为:XXXXXXXXXXXXXXXX 执行sql语句更改为美国语言后仍然失败, ALTER SESSION SET NLS_DATE_LANGUAGE= ...

  5. 剑指offer面试题12-打印1到最大的n位数

    题目: 输入一个数字n,按顺序打印出从1最大的n位十进制数.比方输入3,则打印出1.2.3最大的三位数即999 这道题的主要陷阱就在大数的处理,仅仅要将这个考虑进去,用字符串来表示.就好说了. 那差点 ...

  6. [android错误] requires API level *

    Call requires API level (current min ): android.content.res.Resources#getBoolean 参考文档: http://stacko ...

  7. C#.NET常见问题(FAQ)-interface接口如何理解

    个人把interface理解为一种比较特殊的判断技巧,不是常规的变量类型比如判断字符串,判断数组,而是判断类的实例是否拥有某些属性或者方法(比如有十个女的穿一样的衣服,头上盖住,让新郎去猜哪一个是他的 ...

  8. Openfire与XMPP协议

    关于xmpp协议可以参考:http://www.jabbercn.org 什么是OpenFire Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议. ...

  9. Android:Dialog中隐藏键盘的注意事项

    场景:弹出一个Dialog.里面有一个EditText.用来输入内容.由于输入时.须要弹出键盘.所以当Dialog消失时.键盘要一起隐藏. 如今我们做一个自己定义的Dialog MyDialog ex ...

  10. TOMCAT清理

      CreateTime--2017年7月10日08:54:00Author:Marydon 如何清理TOMCAT 方式一:通过tomcat的安装目录进行清理 找到TOMCAT的根目录,如图: 实质: ...