文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Ext.js4.2.1中Ext.Class是什么

2023-06-04 11:47

关注

小编给大家分享一下Ext.js4.2.1中Ext.Class是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一:描述


Ext.Class 是一个低层级的工厂类,被Ext.ClassManager使用,一般不直接使用Ext.Class,除非在创建一个匿名类时使用。


如果要创建一个类时请使用Ext.define 它是Ext.ClassManager.create的别名。


Ext.Class是一个工厂类,不是任何类的父类。 所有类的基类是 Ext.Base




二:Config


1.alias 简称/别名


如: 


Ext.define('MyApp.CoolPanel', {
    extend: 'Ext.panel.Panel',
    alias: ['widget.coolpanel'],
    title: 'Yeah!'
});


// Using Ext.create
Ext.create('widget.coolpanel');


// Using the shorthand for defining widgets by xtype
Ext.widget('panel', {
    items: [
        {xtype: 'coolpanel', html: 'Foo'},
        {xtype: 'coolpanel', html: 'Bar'}
    ]
});


2.alternateClassName 可选名


如:


Ext.define('Developer', {
    alternateClassName: ['Coder', 'Hacker'],
    code: function(msg) {
        alert('Typing... ' + msg);
    }
});


var joe = Ext.create('Developer');
joe.code('stackoverflow');


var rms = Ext.create('Hacker');
rms.code('hack hack');


3.config  具有默认值的配置参数


如:


Ext.define('SmartPhone', {
     config: {
         hasTouchScreen: false,
         operatingSystem: 'Other',
         price: 500
     },
     constructor: function(cfg) {
         this.initConfig(cfg);
     }
});


var iPhone = new SmartPhone({
     hasTouchScreen: true,
     operatingSystem: 'iOS'
});


iPhone.getPrice(); // 500;
iPhone.getOperatingSystem(); // 'iOS'
iPhone.getHasTouchScreen(); // true;


4.extend  继承,当前类的父类


如:


Ext.define('Person', {
    say: function(text) { alert(text); }
});


Ext.define('Developer', {
    extend: 'Person',
    say: function(text) { this.callParent(["print "+text]); }
});


5.inheritableStatics  可继承的静态方法


6.statics  不可继承的静态方法


如:


Ext.define('Computer', {
     statics: {
         factory: function(brand) {
             // 'this' in static methods refer to the class itself
             return new this(brand);
         }
     },


     constructor: function() { ... }
});


var dellComputer = Computer.factory('Dell');


7.mixins  把其它类糅合进当前类


如:


Ext.define('CanSing', {
     sing: function() {
         alert("I'm on the highway to hell...")
     }
});


Ext.define('Musician', {
     mixins: ['CanSing']
})


此时Musician就会拥有一个sing的方法,通过CanSing类mixin而来。




如果,Musician本身已经有了一个sing方法,应该如下操作:


Ext.define('Musician', {
     mixins: {
         canSing: 'CanSing'
     },


     sing: function() {
         // delegate singing operation to mixin
         this.mixins.canSing.sing.call(this);
     }
})




8.requires  当前类加载之前需要加载的类,类似于import


如:


Ext.define('Mother', {
    requires: ['Child'],
    giveBirth: function() {
        // we can be sure that child class is available.
        return new Child();
    }
});


9.singleton  单例模式


10.uses  和当前类一起加载的类,不是必须的类


如:


Ext.define('Mother', {
    uses: ['Child'],
    giveBirth: function() {
        // This code might, or might not work:
        // return new Child();


        // Instead use Ext.create() to load the class at the spot if not loaded already:
        return Ext.create('Child');
    }
});


以上是“Ext.js4.2.1中Ext.Class是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯