当你使用'instanceof'时,'Buffer.isBuffer'有什么用?
我不明白什么是instanceof
作为一个魅力时, Buffer.isBuffer
函数的目的:
var b = new Buffer('blabla') assert.ok(b instanceof Buffer)
那么,实际上这些是相同的(至less现在):
– lib / buffer.js :
Buffer.isBuffer = function isBuffer(b) { return util.isBuffer(b); };
– lib / util.js :
function isBuffer(arg) { return arg instanceof Buffer; } exports.isBuffer = isBuffer;
…所以唯一可能的原因是可读性。 请注意,在这个特定的实现之前,有一组用于types检查的macros ,在构build源文件时使用。 但是这个提交已经改变了,这就是推理:
向Node的JS层添加macros增加了贡献的障碍,并且破坏了为用户级模块导出Node的js文件的程序。 (例如,几个browserify转换,我的可读streampolyfill,util-debuglog模块等)。这些都不是小问题。
我build议检查提交的拉取请求中的整个讨论。