Buffer.isBuffer当instanceof像魅力一样工作时,我不明白该功能的目的是什么:
var b = new Buffer('blabla')
assert.ok(b instanceof Buffer)
Run Code Online (Sandbox Code Playgroud)
rai*_*7ow 35
嗯,实际上这些是相同的(至少目前):
Buffer.isBuffer = function isBuffer(b) {
return util.isBuffer(b);
};
Run Code Online (Sandbox Code Playgroud)
function isBuffer(arg) {
return arg instanceof Buffer;
}
exports.isBuffer = isBuffer;
Run Code Online (Sandbox Code Playgroud)
......所以唯一可能的原因是可读性.请注意,在此特定实现之前,有一组用于类型检查的宏,在构建源时使用.但是这个提交已经改变了,这就是推理:
向Node的JS层添加宏会增加贡献的障碍,并且会破坏为userland模块导出Node的js文件的程序.(例如,几个browserify转换,我的可读流polyfill,util-debuglog模块等)这些都不是小问题.
我建议在commit的pull请求中检查整个讨论.