首页 > 求解释一下这段js代码

求解释一下这段js代码

var end = res.end ;
res.end = function(chunk, encoding)
{

res.end = end ;
res.end(chunk, encoding );
clearTimeout (timer);

};


这个方法相当于重载 res.end 方法,使执行这个方法的时候再加上清除计时器的功能。执行一次方法重载后的方法之后又恢复原先的方法。

简单写个例子

var res = {};
res.end = function(){
    console.log('xxx');
}

// 原先方法执行的结果
console.log('--------');
res.end();
console.log('--------');

// 保存原先方法的引用
var end = res.end;
// 重载 res.end 方法
res.end = function(){
    // 恢复原先的方法
    res.end = end;
    res.end();
    console.log('yyy');
}

// 重载 res.end 执行的结果
console.log('--------');
res.end();
console.log('--------');

// 执行一次重载之后的执行结果
console.log('--------');
res.end();
console.log('--------');
【热门文章】
【热门文章】