我是JS新手并试图覆盖Craftyjs中的一个函数,这是我的代码:
Crafty.c('TestA', {
init: function() {
Crafty.addEvent(this, Crafty.stage.elem, "mousedown", this._e_clickListener);
},
_e_clickListener: function(e){
this.foo();
},
foo: function() {
console.log('call A foo');
}
});
Crafty.c('TestB', {
init: function() {
this.requires('TestA');
},
foo: function(){
console.log('call B foo');
}
});
Crafty.e('TestB');
单击画布时的结果是:
call A foo
有没有把它变成'叫做B foo'呢? 感谢。
答案 0 :(得分:3)
我对 CraftyJS 并不熟悉,文档可能会使用一些 TLC - 除非我错过了看起来好像在调用requires
的内容只是简单地将 每个 合并到一个对象中 - last-in优先。没有继承,所以没有超类 - 只是一个扁平的对象。
也许有一种更好的方法,但我只能通过简单地在init
函数 之后将其分配到“覆盖” 您已导入所需的组件。
Crafty.c('TestB', {
init: function() {
this.requires('TestA');
this.foo = function(){
console.log('call B foo');
}
}
});