永利最大(官方)网站

ExtJS之面向对象编程基本知识

原创|其它|编辑:郝浩|2009-04-07 09:34:06.000|阅读 706 次

概述:这是一篇我对面向对象编程基本知识的一些心得,分享出来同大家一起研究学习。

#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>

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; // 在命名空间上自定义一个类
// 为自定义的类 增加一个 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; // 在命名空间上自定义一个类
// 演示类实例方法
Ext.apply(Ext.wentao.Person.prototype, {
name : "刘文涛",
sex : "男",
print : function() {
alert(String.format("姓名:{0},性别:{1}", this.name, this.sex));
}
});

var _person = new Ext.wentao.Person();// 实例化 自定义类

_person.print();


</script>

4:支持类静态方法 

<script type="text/javascript">

Ext.namespace("Ext.wentao"); // 自定义一个命名空间
Ext.wentao.Person = Ext.emptyFn; // 在命名空间上自定义一个类

// 演示类实例方法
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是类 静态方法
};

Ext.wentao.Person.print("张三", "女"); // 调用类 静态方法

</script>

  5:支持构造方法 

<script type="text/javascript">
Ext.namespace("Ext.wentao"); //自定义一个命名空间

//构造方法
Ext.wentao.Person = function(_cfg){
Ext.apply(this,_cfg);
};

//演示类实例方法
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是类 静态方法
};

Ext.wentao.Person.print("张三","女"); //调用类 静态方法
</script>

  6:支持类继承 

<script type="text/javascript">

Ext.namespace("Ext.wentao"); // 自定义一个命名空间

// *******************父类*********************
// 构造方法
Ext.wentao.Person = function(_cfg) {
Ext.apply(this, _cfg);
};

// 演示类实例方法
Ext.apply(Ext.wentao.Person.prototype, {
job : "无",
print : function() {
alert(String.format("姓名:{0},性别:{1},角色:{2}", this.name,
this.sex, this.job));
}
});   

// *******************子类1*********************
Ext.wentao.Student = function(_cfg) {
Ext.apply(this, _cfg);
};

Ext.extend(Ext.wentao.Student, Ext.wentao.Person, {
job : "学生"
});

var _student = new Ext.wentao.Student({
name : "张三",
sex : "女"
});
_student.print(); // 调用 父类方法

</script>

  7:支持类实例方法重写 

    <script type="text/javascript">    
Ext.namespace("Ext.wentao"); // 自定义一个命名空间

// *******************父类*********************
// 构造方法
Ext.wentao.Person = function(_cfg) {
Ext.apply(this, _cfg);
};

// 演示类实例方法
Ext.apply(Ext.wentao.Person.prototype, {
job : "无",
print : function() {
alert(String.format("姓名:{0},性别:{1},角色:{2}", this.name,
this.sex, this.job));
}
});

// *******************子类1*********************
Ext.wentao.Student = function(_cfg) {
Ext.apply(this, _cfg);
};

// 重写父类的 实例 方法
Ext.extend(Ext.wentao.Student, Ext.wentao.Person, {
job : "学生",
print : function() {
alert(String.format("{0}是一位{1}{2}", this.name, this.sex,
this.job));
}
});

var _student = new Ext.wentao.Student({
name : "张三",
sex : "女"
});
_student.print(); // 调用 父类方法

</script>

  8:支持命名空间别名 

    <script type="text/javascript">

Ext.namespace("Ext.wentao"); // 自定义一个命名空间

Wt = Ext.wentao; // 命名空间的别名

// *******************父类*********************
// 构造方法
Wt.Person = function(_cfg) {
Ext.apply(this, _cfg);
};

// 演示类实例方法
Ext.apply(Wt.Person.prototype, {
job : "无",
print : function() {
alert(String.format("姓名:{0},性别:{1},角色:{2}", this.name,
this.sex, this.job));
}
});

// *******************子类1*********************
Wt.Student = function(_cfg) {
Ext.apply(this, _cfg);
};

// 重写父类的 实例 方法
Ext.extend(Wt.Student, Ext.wentao.Person, {
job : "学生",
print : function() {
alert(String.format("{0}是一位{1}{2}", this.name, this.sex,
this.job));
}
});

var _student = new Wt.Student({
name : "张q三",
sex : "女"
});
_student.print(); // 调用 父类方法


</script>

  9:支持类别名

<script type="text/javascript">

Ext.namespace("Ext.wentao"); // 自定义一个命名空间

Wt = Ext.wentao; // 命名空间的别名

// *******************父类*********************
// 构造方法
Wt.Person = function(_cfg) {
Ext.apply(this, _cfg);
};

PN = Wt.Person; // 类别名

// 演示类实例方法
Ext.apply(PN.prototype, {
job : "无",
print : function() {
alert(String.format("姓名:{0},性别:{1},角色:{2}", this.name,
this.sex, this.job));
}
});

// *******************子类1*********************
Wt.Student = function(_cfg) {
Ext.apply(this, _cfg);
};

ST = Wt.Student;

// 重写父类的 实例 方法
Ext.extend(ST, PN, {
job : "学生",
print : function() {
alert(String.format("{0}是一位{1}{2}", this.name, this.sex,
this.job));
}
});

var _student = new ST({
name : "张q三",
sex : "女"
});
_student.print(); // 调用 父类方法

</script>


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn

文章转载自:博客园

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP
PM娱乐城网络现金网站(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) PM娱乐城最大(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 永利外围最新(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 网络权威朗驰娱乐大全(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 永利真人网上足球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 利记最火十大网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) boyu·博鱼权威网络足球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) PM娱乐城网上足球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新)