开发者社区> 问答> 正文

javascript重写基类方法前调用.

function Base(){
}
Base.prototype.say = function(){
 console.log(1);
}

function Sub(){

}
Sub.prototype = new Base();
Sub.prototype.say = function(){
 //todo: 不使用__proto__调用base.say();
 console.log('2');
}
var son  = new Sub();
son.say() // Expect: log: 1,2;

请问有什么方式可以实现吗?

展开
收起
a123456678 2016-03-11 11:51:16 2131 0
1 条回答
写回答
取消 提交回答
  • function Base(){
    
    }
    Base.prototype.say = function(){
     console.log(1);
    }
    
    function Sub(){
    }
    Sub.prototype = new Base();
    (function() {
        var _say = Sub.prototype.say;
        Sub.prototype.say = function(){
         //todo: 不使用__proto__调用base.say();
         _say.call(this);
         console.log('2');
        }
    })()
    
    var son  = new Sub();
    son.say() // Expect: log: 1,2;
    2019-07-17 18:58:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载