iugo
V2EX  ›  Node.js

为什么 Buffer.from(array) 替代 new Buffer(array) ? 避免使用 new?

  •  
  •   iugo · Jun 9, 2017 · 3616 views
    This topic created in 3434 days ago, the information mentioned may be changed or developed.
    以及类似的静态方法替代 new 的问题. 在 JavaScript 中这样做是基于什么原因?
    Supplement 1  ·  Jun 9, 2017
    老老实实读了: https://nodejs.org/api/buffer.html#buffer_buffer_from_buffer_alloc_and_buffer_allocunsafe

    看来并不是对 new 有什么成见, 只是如 @ljcarsenal 所说, 不同参数会对行为有比较大的影响, 所以为了更加明确行为, 将 new 的功能分为三个. 并且建议开发者更换之前的 new Buffer() constructors 为新 API.
    10 replies  •  2017-06-09 11:05:15 +08:00
    ljcarsenal
    ljcarsenal
    Jun 9, 2017❤️2
    1
    我记得是 new Buffer()可以接受不同类型的参数 产生不同的结果,容易引起歧义吧,所以都给改掉了
    wwulfric
    wwulfric
    Jun 9, 2017
    2
    如果每次传入的 array 一样,生成的都是同一个 Buffer。但是 new Buffer 每次都会生成一个新的 Buffer,即使每次调用的时候都是同样的 array

    以上是我猜的,我没写过 js
    lrannn
    lrannn
    Jun 9, 2017
    3
    为什么这个帖子是黑色的背景?
    phx13ye
    phx13ye
    Jun 9, 2017
    4
    可以看下 joshua bloch 的 effective java 关于静态工厂的章节
    蛤蛤,java 狗撸过
    miyuki
    miyuki
    Jun 9, 2017 via Android
    5
    @lrannn

    Node.js
    miyuki
    miyuki
    Jun 9, 2017 via Android
    6
    @lrannn 节点主题
    zhihy123
    zhihy123
    Jun 9, 2017
    7
    buffer 成为内置模块了,文档上写了,不过其他的我就不记得了~
    exoticknight
    exoticknight
    Jun 9, 2017
    8
    查了一下,Buffer.from(array) 还有一个调用的方式,那个能够直接用 TypedArray 的 buffer,所以用 new 容易引起歧义
    iugo
    iugo
    OP
    Jun 9, 2017
    10
    @seki 我刚去看了文档, 您就发来了链接. 心有灵犀呀~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1584 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 23:06 · PVG 07:06 · LAX 15:06 · JFK 18:06
    ♥ Do have faith in what you're doing.