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. c#写扩展方法

    学习MVC时,学会了写扩展方法,用起来很方便. 01 using System; 02 using System.Collections.Generic; 03 using System.Linq; ...

  2. [mysql] C++操作mysql方法总结(1)

    From: http://www.cnblogs.com/magicsoar/p/3817518.html C++通过mysql的c api和通过mysql的Connector C++ 1.1.3操作 ...

  3. GetProcAddress 使用注意事项

    使用 GetProcAddress Function 时,有以下几点需要特别留意: 1. 第二个参数类型是 LPCSTR,不是 : 2. 用 __declspec(dllexport),按 C 名称修 ...

  4. [Javascript] Using map() function instead of for loop

    As an example, if Jason was riding the roller coaster (and when isn’t he), your goal would be to cha ...

  5. Oracle查询client编码集

    Oracle查询client编码集 SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------- ...

  6. mondrian4 kylin saiku 整合踩坑记录

    1 先说了版本: Mondrian 4 .kylin2.2 .saiku 3.15 2 saiku 3.15 使用的xml是基于 mondrian4 的schema的xml.判断是不是mondrian ...

  7. Android访问远程网页取回json数据

    php代码 $array = array(  'username'=>'杨铸',  'password'=>'123456',  'user_id'=>);echo json_enc ...

  8. Spring boot 与quart集成并在Job中注入服务

    1:AutowiringSpringBeanJobFactory.java package com.microwisdom.grgzpt.jobs; import org.quartz.spi.Tri ...

  9. Linux 下升级python和安装pip

    Linux版本升级: 1.  首先确认Linux操作系统中自带的python 版本时候与自己所需要的版本一致 所有的python版本都在https://www.python.org/ftp/pytho ...

  10. Spark1.0.0 生态圈一览

          Spark生态圈,也就是BDAS(伯克利数据分析栈),是伯克利APMLab实验室精心打造的,力图在算法(Algorithms).机器(Machines).人(People)之间通过大规模集 ...