connectモジュールの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 についても同様のケースが発生します。