(转自:http://blog.csdn.net/wwd252/article/details/3761236)
1:支持命名空间
<
script type
=
"
text/javascript
"
>
//
定义一个命名空间
Ext.namespace(
"
Ext.wentao
"
);
//
在命名空间上定义一个类
Ext.wentao.helloworld
=
Ext.emptyFn;
//
创建一个类的实例
new
Ext.wentao.helloworld();
</
script
>
其中
Ext.wentao.helloworld
=
Ext.emptyFn;
等价于
Ext.wentao.helloworld
=
function()
{}
;
2:支持类实例属性
<
script type
=
"
text/javascript
"
>
Ext.namespace(
"
Ext.wentao
"
);
//
自定义一个命名空间
Ext.wentao.Person
=
Ext.emptyFn;
//
在命名空间上自定义一个类
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
为自定义的类 增加一个 name 属性,并赋值
Ext.apply(Ext.wentao.Person.prototype,
{
name:"刘文涛"
}
)
var _person
=
new
Ext.wentao.Person();
//
实例化 自定义类
alert(_person.name);
_person.name
=
"
张三
"
;
//
修改类name属性
alert(_person.name);
</
script
>
3:支持类实例方法
<
script type
=
"
text/javascript
"
>
Ext.namespace(
"
Ext.wentao
"
);
//
自定义一个命名空间
Ext.wentao.Person
=
Ext.emptyFn;
//
在命名空间上自定义一个类
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
演示类实例方法
Ext.apply(Ext.wentao.Person.prototype,
{
name:"刘文涛",
sex:"男",
print:function(){
alert(String.format("姓名:{0},性别:{1}",this.name,this.sex));
}
}
)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
var _person
=
new
Ext.wentao.Person();
//
实例化 自定义类
_person.print();
</
script
>
4:支持类静态方法
<
script type
=
"
text/javascript
"
>
Ext.namespace(
"
Ext.wentao
"
);
//
自定义一个命名空间
Ext.wentao.Person
=
Ext.emptyFn;
//
在命名空间上自定义一个类
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
演示类实例方法
Ext.apply(Ext.wentao.Person.prototype,
{
name:"刘文涛",
sex:"男",
print:function(){
alert(String.format("姓名:{0},性别:{1}",this.name,this.sex));
}
}
)
//
演示 类静态方法
Ext.wentao.Person.print
=
function(_name,_sex)
{
var _person = new Ext.wentao.Person();
_person.name = _name;
_person.sex = _sex;
_person.print(); //此处调用类 实例方法,上面print是类 静态方法
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
Ext.wentao.Person.print(
"
张三
"
,
"
女
"
);
//
调用类 静态方法
</
script
>
5:支持构造方法
<
script type
=
"
text/javascript
"
>
Ext.namespace(
"
Ext.wentao
"
);
//
自定义一个命名空间
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
构造方法
Ext.wentao.Person
=
function(_cfg)
{
Ext.apply(this,_cfg);
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
演示类实例方法
Ext.apply(Ext.wentao.Person.prototype,
{
print:function(){
alert(String.format("姓名:{0},性别:{1}",this.name,this.sex));
}
}
)
//
演示 类静态方法
Ext.wentao.Person.print
=
function(_name,_sex)
{
var _person = new Ext.wentao.Person({name:_name,sex:_sex});
_person.print(); //此处调用类 实例方法,上面print是类 静态方法
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
Ext.wentao.Person.print(
"
张三
"
,
"
女
"
);
//
调用类 静态方法
</
script
>
6:支持类继承
<
script type
=
"
text/javascript
"
>
Ext.namespace(
"
Ext.wentao
"
);
//
自定义一个命名空间
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
*******************父类*********************
//
构造方法
Ext.wentao.Person
=
function(_cfg)
{
Ext.apply(this,_cfg);
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
演示类实例方法
Ext.apply(Ext.wentao.Person.prototype,
{
job:"无",
print:function(){
alert(String.format("姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
}
}
)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
*******************子类1*********************
Ext.wentao.Student
=
function(_cfg)
{
Ext.apply(this,_cfg);
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
Ext.extend(Ext.wentao.Student,Ext.wentao.Person,
{
job:"学生"
}
)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
var _student
=
new
Ext.wentao.Student(
{name:"张三",sex:"女"}
);
_student.print();
//
调用 父类方法
</
script
>
7:支持类实例方法重写
<
script type
=
"
text/javascript
"
>
Ext.namespace(
"
Ext.wentao
"
);
//
自定义一个命名空间
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
*******************父类*********************
//
构造方法
Ext.wentao.Person
=
function(_cfg)
{
Ext.apply(this,_cfg);
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
演示类实例方法
Ext.apply(Ext.wentao.Person.prototype,
{
job:"无",
print:function(){
alert(String.format("姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
}
}
)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
*******************子类1*********************
Ext.wentao.Student
=
function(_cfg)
{
Ext.apply(this,_cfg);
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
重写父类的 实例 方法
Ext.extend(Ext.wentao.Student,Ext.wentao.Person,
{
job:"学生",
print:function(){
alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
}
}
)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
var _student
=
new
Ext.wentao.Student(
{name:"张三",sex:"女"}
);
_student.print();
//
调用 父类方法
</
script
>
8:支持命名空间别名
<
script type
=
"
text/javascript
"
>
Ext.namespace(
"
Ext.wentao
"
);
//
自定义一个命名空间
Wt
=
Ext.wentao;
//
命名空间的别名
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
*******************父类*********************
//
构造方法
Wt.Person
=
function(_cfg)
{
Ext.apply(this,_cfg);
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
演示类实例方法
Ext.apply(Wt.Person.prototype,
{
job:"无",
print:function(){
alert(String.format("姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
}
}
)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
*******************子类1*********************
Wt.Student
=
function(_cfg)
{
Ext.apply(this,_cfg);
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
重写父类的 实例 方法
Ext.extend(Wt.Student,Ext.wentao.Person,
{
job:"学生",
print:function(){
alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
}
}
)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
var _student
=
new
Wt.Student(
{name:"张q三",sex:"女"}
);
_student.print();
//
调用 父类方法
</
script
>
9:支持类别名
<
script type
=
"
text/javascript
"
>
Ext.namespace(
"
Ext.wentao
"
);
//
自定义一个命名空间
Wt
=
Ext.wentao;
//
命名空间的别名
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
*******************父类*********************
//
构造方法
Wt.Person
=
function(_cfg)
{
Ext.apply(this,_cfg);
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
PN
=
Wt.Person;
//
类别名
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
演示类实例方法
Ext.apply(PN.prototype,
{
job:"无",
print:function(){
alert(String.format("姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
}
}
)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
*******************子类1*********************
Wt.Student
=
function(_cfg)
{
Ext.apply(this,_cfg);
}
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
ST
=
Wt.Student;
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
//
重写父类的 实例 方法
Ext.extend(ST,PN,
{
job:"学生",
print:function(){
alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
}
}
)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
var _student
=
new
ST(
{name:"张q三",sex:"女"}
);
_student.print();
//
调用 父类方法
</
script
>