对象篇
1.目前常见用json形式定义一个对象,这种方式简洁直观.
var是可以省略的,省略后表示为定义全局变量,比如Ext对象的定义:
最简单的对象声明方式:
var obj = {};//声明一个对象
另:var arr = [];//声明一个数组
2.通过new 关键字创建对象:
上面代码还可以改为这种形式:
3.另一种定义对象方式:
这种定义方式和Java中设置私有属性和公共getter/setter方法情形类似.
属性name和age只能被getName()和getAge()访问,而getName()和getAge()是被设置为公共的.
com.yourcompany.Employee方法(构造方法)返回是是一对象{....},在这里我们把他理解为“类”.
4.Ext中继承
函数篇
1.函数声明的常见两种方式
2.extjs中可以发现这种结构:
即定义一个函数并立即执行.
对于只会执行一次并且不会被其他函数调用的情况下可以采取这种方法.
补充篇
此部分总结来自于《Ext详解与实践》一书:
1.Java是强类型,静态的,基于类的,使用类继承,有类,构造函数,方法的概念.
Javascript是弱类型,动态的,基于prototype,使用prototype继承,function扮演了类,构造器,方法三种角色.
2.Javascript中一切都是对象,每个对象都有一个特殊的prototype属性,任何对象都是"实例(instance)",没有类.
在Java中,对象只能从类创建.
3.使用var定义变量,表明该变量是局部变量,否则为全局变量,加入在window对象(即全局空间)下.
ex.ExtJs中所有的"类"均安排在Ext这一对象下,Ext为全局变量.
4.函数闭包例子(来自ExtJs):
调用:
函数闭包的理解:
函数(createCallBack)的局部函数(innerfunc)被函数(createCallBack)外的一个变量(f1)引用时候,就创建了一个闭包.
若局部函数(innerfunc)被函数(createCallBack)外的变量(f1)所引用,只要该引用(f1)存在,外部函数的局部参数或变量会持久保存在内存中,不会被垃圾回收器回收,除非显式的对局部函数的引用(f1)设置为null.