我正在研究连接模块中的 patch.js。有一些代码如下:
var http = require('http')
, res = http.ServerResponse.prototype
, setHeader = res.setHeader
, _renderHeaders = res._renderHeaders
...
res._renderHeaders = function(){
if (!this._emittedHeader) this.emit('header');
this._emittedHeader = true;
return _renderHeaders.call(this);
};
我对 res._renderHeaders 函数定义上的这个奇怪代码感到困惑。作为回报,它正在调用自己?那么它会递归调用自己吗?或者什么是正确的运行过程?
res.writeHead, res._renderHeaders 也出现了类似的情况。