public class parent { public virtual void process() { } } public class child:parent { public override process() { base.process(); } }
在c#中 为了避免写重复代码可以通过 base.方法名去调用父类的方法
那么在js中继承的情况 该如何去调用父类的方法 求解
Parent= function () { } Parent.prototype.process = function(){ } Child= function () { Parent.call(this); } Child.prototype = new Parent(); Child.prototype.process = function(){ // 这里怎么写才能调用父类的方法 }
谷歌一下, “js作用域”。
我想到一个方法是这样:
var Parent= function () { }; Parent.prototype.process = function(){ alert('parent method'); }; var Child= function () { Parent.call(this); }; Child.prototype = new Parent(); Child.prototype.process = function(){ this.__proto__.process(); alert('child method'); }; var childVar = new Child(); childVar.process();
就是有点担心__proto__是不是所以的浏览器都能认的。
我上网查了下,可以这样写,完美解决你的问题:
var Parent= function () { }; Parent.prototype.process = function(){ alert('parent method'); }; var Child= function () { Parent.call(this); }; Child.prototype = new Parent(); Child.prototype.process = function(){ this.constructor.prototype.process(); alert('child method'); }; var childVar = new Child(); childVar.process();