征服.刘华强 2012-12-01 22:08
浏览 279
已采纳

javaScript 回调函数问题

        Function.prototype.andThen=function(g) { 
          var f=this;
             return function() {   
               f();
               g();  
             } 
        };

        function person() {
            this.name = "aaa";
            this.callBack = function(){}
            this.registerFcuntion = function(callBack) {
                this.callBack = (this.callBack).andThen(callBack);
            }
        }

        var p = new person();
        p.registerFcuntion(function(){alert(22);});
        p.callBack();

以下这几行代码是我不太明白的地方 请指点 越详细越好
var f=this;
return function() {

f(); //什么意思?
g(); //什么意思?
}

  • 写回答

2条回答 默认 最新

  • jinnianshilongnian 2012-12-02 09:26
    关注

    配合这段来看
    this.callBack = function(){} //当前的回调
    this.registerFcuntion = function(callBack) { //注册新的回调
    this.callBack = (this.callBack).andThen(callBack);

    (this.callBack).andThen(callBack); 调用如下
    Function.prototype.andThen=function(g) {
    var f=this; //this表示当前对象 当前对象是(this.callBack) 所以f是上一个回调
    return function() {

    f();
    g();

    }
    };

    因此功能就是:
    注册新回调时 把以前的放在前面 形成链

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?