求解释一下这段js代码

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

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

};

阅读 1.7k
1 个回答

这个方法相当于重载 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('--------');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题