extJS 在面向对象方面的支持

简述:

研究extJS可以OO的继承


知识点:

1. extJS的继承方式

1) Ext.extend( INHERITENCE_CLASS,BASE_CLASS , { func:function(){....} }

在第三个参数里,覆写(override)基类的函数

2)Ext.extend( Base , { func :  function(){...} }

直接覆写(override)包括基类的构造函数,成员函数


代码:

1、1)Ext.extend(INHERITENCE_CLASS,BASE_CLASS,{func:function(){....}}

test2.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>test2.html</title>
    <link rel="stylesheet" type="text/css" href="../ext-3.3.1/resources/css/ext-all.css"></link>
	<script type="text/javascript" src="../ext-3.3.1/adapter/ext/ext-base.js"></script>
	<script type="text/javascript" src="../ext-3.3.1/ext-all.js"></script>
  
    <script type="text/javascript">
    /****************declare Person Class*************************/
    var Person = function(personInfo){
      this.name = personInfo.name;
      this.age = personInfo.age; 
    };
    Person.prototype.getInfo = function(){
      return this.name + ", " + this.age;
    }
    
    /************************Worker Class**************************/
    var Worker = function(workerInfo){
      Person.prototype.constructor.call(this,workerInfo);
      this.job = workerInfo.job;
    }
    
    /************************Ext extend function ******************/
    Ext.extend(Worker,Person,{
      //override getInfo of Person Class
      getInfo:function(){
      	return this.name + ", " + this.age + ", " + this.job;
      }  
    })
    
    
    /************************Test**********************************/
    var someone = {
      name : "John",
      age  : 21,
      job  : "IT_Worker"
    };
    
    var worker = new Worker(someone);
    document.write(worker.getInfo());

    </script>

  </head>
  
  <body>
  </body>
</html>


输出:


1、2)Ext.extend( Base , { func :  function(){...} }

test3.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>test3.html</title>
    <link rel="stylesheet" type="text/css" href="../ext-3.3.1/resources/css/ext-all.css"></link>
	<script type="text/javascript" src="../ext-3.3.1/adapter/ext/ext-base.js"></script>
	<script type="text/javascript" src="../ext-3.3.1/ext-all.js"></script>
  
    <script type="text/javascript">
    /****************declare Person Class*************************/
    var Person = function(personInfo){
      this.name = personInfo.name;
      this.age = personInfo.age; 
    };
    Person.prototype.getInfo = function(){
      return this.name + ", " + this.age;
    };
    
    /************************Worker Class**************************/
    var Worker = Ext.extend(Person,{
      constructor:function(workerInfo){
        Person.prototype.constructor.call(this,workerInfo);//override the constructor
        this.job = workerInfo.job;     
      },
      getInfo:function(){ //override getInfo of Person Class
        return this.name + ", " + this.age + ", " + this.job;
      }
    });
    
    /************************Test**********************************/
    var someone = {
      name : "John",
      age  : 21,
      job  : "IT_Worker"
    };
    
    var person = new Person(someone);
    document.write("PersonInfo: " + person.getInfo() + "<br>");
    
    var worker = new Worker(someone);
    document.write("WorkerInfo: " + worker.getInfo());

    </script>

  </head>
  
  <body>
  </body>
</html>

输出:


综述:

个人觉得还是第二种好,把构造函数视为成员函数去override

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值