我是一名自学学生,对 javascript 和 ExtJs 都是全新的。
我想做的是创建一个主类动物,然后让两个子类从动物继承属性/方法。那些是猫和狗......然后我想让多个对象(多个猫和狗的)继承自猫和狗类。多个对象,cat1、mycat、cat2、dog1、mydog、topdog 等......应该能够相互交谈和倾听。
当 cat1、mycat 等说话时,它只是警觉(东西),当这种情况发生时,狗会提醒“我的狗听到了”。
在社区的帮助下,我已经在 javascript 中做到了这一点(如何使用 javascript 创建侦听器)
我现在也想用 ExtJS 来做这件事。这是我到目前为止所拥有的
Ext.define('animal', {
extend: 'Ext.util.Observable',
constructor: function(config)
{
this.name = config.name;
this.addEvents({'makesound' :true});
this.listeners = config.listeners;
//animal.superclass.constructor.call(this, config);
this.callParent(arguments);
},
makesound: function()
{
alert(this.sound);
this.fireEvent('makesound'); // this is wrong isn't it?
// I was thinking that the make sound
// would trigger the event makesound
}
});
//var cat = Ext.create('animal');
//var dog = new animal;
//cat.makesound();
//dog.makesound();
Ext.define('cat', {
extend: 'animal',
name: name,
sound: 'meow'
});
Ext.define('dog', {
extend: 'animal',
name: name,
sound: 'woof'
});
var myCat = new cat({
name: 'myCat'});
var myDog = new dog({
name:'mydog',
listeners: {
makesound: function() {
alert('mydog heard that');
}
}
});
myCat.makesound();
myDog.fireEvent('makesound'); //
我真正想要的是让 mycat 发出声音,然后 mydog 会自动听到那个声音(“喵喵声”)并提醒我的狗听到了。虽然在 extJS 中。任何帮助或建议将不胜感激。