『ExtJS』01 003. ExtJS 4 类的混合

ExtJS 4 中,可以在一个类里面包含另一个类,并合并它们的成员(包括方法与属性)。 使用这一个特性,我们可以对一些细小且经常被使用的方法进行打包,然后合并它们到各个需要它们的类中。

代码


ExtJS:4.0.7

IDE:Eclipse Java EE

浏览器:Chrome 25

   1: //-------等待被混合的类---------------------------------
   2: Ext.define('HasCamera', {
   3:     takePhoto : function() {
   4:         alert('Say Cheese! .... Click!');
   5:     }
   6: });
   7:  
   8: //-------混合HasCamera的另一个类------------------------
   9: Ext.define('Cookbook.Smartphone', {
  10:     mixins : {
  11:         camera : 'HasCamera'
  12:     },
  13:     
  14:     useCamera:function(){
  15:         this.takePhote();    // 调用HasCamera的方法
  16:     }
  17: });
  18:  
  19: //-------实例化与调用----------------------------------
  20: var smartphone = Ext.create('Cookbook.Smartphone');
  21: smartphone.useCamera();    // Say Cheese! .... Click!

说明


  1. 定义一个被‘混合’的类HasCamera;
  2. 定义一个类Smartphone,并使用mixins关键字混合HasCamera;
  3. 由于HasCamera已经被‘混合’到了Smartphone中,所以在Smartphone中,已经可以使用HasCamera的所有成员(包括属性)。

总结


‘混合’类与继承看起来类似,但是其主要的目的有所不同。使用‘混合’类的主要目的在于复用,使用继承的目的在于实现面向对象的一些目的(比如多态)。

posted @ 2012-11-23 21:22  莫不逢  阅读(491)  评论(0编辑  收藏  举报