父类:
clicked:function(){
if(!this.enabled) return;
},
Child Override Parent Function:
clicked:function(){
this.parent();
console.log('Clicked');
}
我正在尝试阻止使用上面的代码禁用子函数但它不起作用,父函数只是停止自身而子进程执行。是否可以让父级停止执行任何覆盖代码?感谢。
更新 假设我有50个继承自同一类的子类。有没有更简单的方法,所以我们不需要放:
if(!this.enabled) return;
this.parent();
在每个子类中点击功能?
答案 0 :(得分:1)
clicked:function(){
return this.enabled;
}
clicked:function(){
if (this.parent()) console.log('Clicked');
}
答案 1 :(得分:0)
在父对象中,您必须具有检查父项是否已启用的函数。父母点击的功能应该负责做一些动作。
enabled: function() {
return this.enabled;
}
clicked:function() {
// this must be responsible for invoking some action
// do some action
}
在子对象中,您必须检查父级是否已启用。 (这是你想要实现的猜测)
clicked:function() {
if (this.enabled()) console.log('Clicked');
}
答案 2 :(得分:0)
Javascript继承有时候有点困难。这是一个小例子。
// parent class constructor
MMN.Parent = function(text) {
this.member = text;
}
MMN.Parent.prototype = {
setMember : function(text) {
this.member = text;
}
}
// child class constructor
MMN.Child = function() {
MMN.Parent.call(this, 'This text is set from the child constructor');
}
// inheritance
MMN.Child.prototype = Object.create(MMN.Parent.prototype);
// override and call of parent method
MMN.Child.prototype.setMember = function(text) {
MMN.Parent.prototype.setMember(text);
console.log('this logs from the child method');
}
此示例显示如何在子类中调用父方法。