我不了解Buffer.isBuffer像 super 按钮一样工作时instanceof函数的用途是什么:

var b = new Buffer('blabla')
assert.ok(b instanceof Buffer)

最佳答案

好吧,实际上这些是相同的(至少当前是这样):

-- 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;

...所以唯一可能的原因是可读性。请注意,在此特定实现之前,有一个用于类型检查的set of macros,在构建源时使用。但这是使用this commit进行了更改,这就是原因:



我建议在commit的pull request中检查整个讨论。

10-05 20:47