Mixins也是新概念,相当于调用Ext.apply(this,other)将other类中的方法合并到当前的类中,也相当于另一种形式的继承。
下面用代码测试一下,使用了Siesta测试框架,有兴趣可以google一下,很强大的测试系统。
StartTest(function(t) { t.diag("Extjs common test"); t.ok(Ext,"Ext is here"); Ext.define("test.Talk", { talk:function() { return 'talk' } } ); Ext.define("test.Person", { mixins: { everyOneNeedTalk:"test.Talk" } }); var p = Ext.create("test.Person"); t.is('talk',p.talk(),'The method is mixin') Ext.define("test.Student",{ config:{ gender:'boy' }, constructor:function(config){ this.initConfig(config); //这里需要调用initConfig,否则不会自动生成getter 和 setter } }); var s = Ext.create('test.Student') t.is(s.getGender(),'boy','generate getter') s.setGender('girl'); t.is(s.getGender(),'girl','generate setter') t.done(); // Optional, marks the correct exit point from the test });
引自:http://kldn.iteye.com/blog/1386622