mootools extend class
mootools extend class
我有这个代码:
var MyClass = new Class({
Implements: [Options,Events],
initialize: function(){
},
doStuff: function() {
console.log('In MyClass');
}
});
var MyBetterClass = new Class({
Extends: MyClass,
initialize: function() {
},
doExtraStuff: function() {
console.log('In MyBetterClass');
}
});
var a = new MyBetterClass();
当doStuff
在某个地方被调用时,我希望doExtraStuff也被调用。我将如何做到这一点?这样我就不必弄乱别人的代码,但是当他们的代码中发生某些事情时,我希望我的代码中发生其他事情。父类中没有触发任何事件。
不能在父类中调用子类方法。您可以重写父类的 doStuff
方法,通过子类的属性调用父类parent
方法,然后实现自己的代码。
超级舱
var MyClass = new Class({
Implements: [Options,Events],
initialize: function(){
},
doStuff: function() {
console.log('In MyClass');
}
});
子类
var MyBetterClass = new Class({
Extends: MyClass,
initialize: function() {
},
doStuff: function() {
this.parent();
console.log('In MyBetterClass');
// your own implementation of this method
}
});
然后
var a = new MyBetterClass();
a.doStuff(); // prints on console "In MyClass" and "In MyBetterClass"
你应该做的是覆盖MyBetterClass中的doStuff方法,然后在超类上调用被覆盖的方法:
var MyClass = new Class({
Implements: [Options,Events],
initialize: function(){
},
doStuff: function() {
console.log('In MyClass');
}
});
var MyBetterClass = new Class({
Extends: MyClass,
initialize: function() {
},
doStuff: function() {
this.parent();
console.log('In MyBetterClass');
}
});
var a = new MyBetterClass();
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 通过id和class属性获取元素
- 菜单栏class=活动引导程序主题无法正常工作
- $(.class).empty总是缺少一个元素
- 如何覆盖主干中的extend方法
- jQuery[button.class]未检测到用按钮追加行
- javascript点击函数不;不适用于ID和Class
- HTML class=Ajax操作,如何让类点击调用好的操作
- 如何在使用Ractive.extend()时引用DOM元素
- Add a class if var < 0 jquery
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- Difference between methods of defining JavaScript 'class
- todomvc Backbone's更改为class'编辑'使todo可编辑
- 使用jQuery隐藏和显示具有相同Class的类
- JQuery选择器:如果同级具有.class,则选择td
- 使用带有自定义对象作为属性的jQuery.extend时出现意外行为
- JQuery .extend() and Javascript class
- mootools extend class
- Inheritance - Class.extend()