为什么我们需要Buffer.isBuffer方法?

问题描述:

为什么我们需要Buffer.isBuffer方法,当我们知道它的做法与instanceof Buffer一样?为什么我们需要Buffer.isBuffer方法?

https://github.com/nodejs/node/blob/master/lib/buffer.js#L306

+0

这将是对你有用,HTTP://计算器。 com/questions/21858138/whats-the-use-of-buffer-isbuffer-when-you-could-use-instanceof –

+0

谢谢!这是同样的问题 – stackoverYC

这不是技术上的必要。它是为了方便而存在的,至少在某种程度上可能是惯用的。

没有扩展给出解释when it was defined,但它似乎是一个重构(DRY - 回答“什么是缓冲”曾经和再利用)和/或风格偏好:

- if (!(buffer instanceof Buffer)) { 
+ if (!Buffer.isBuffer(buffer)) { 

有可能是一些灵感取自Array.isArray()

而且,它确实也提供了一些额外的向后兼容(也可能是一些面向未来的),作为节点的版本have had a single type for Buffers的还不是全部:

Buffer.isBuffer = function isBuffer(b) { 
    return b instanceof Buffer || b instanceof SlowBuffer; 
};