Javascript 为什么修改缓冲区切片会修改原始切片?

Javascript 为什么修改缓冲区切片会修改原始切片?,javascript,node.js,Javascript,Node.js,下面修改了缓冲区的一个片 这样做时,它也会修改原始的缓冲区。如果我在数组上执行类似的操作,那么原始数组将保持不变 那么,这种行为是Node.js上的slice方法的具体实现的结果吗 const fs = require('fs'); fs.readFile(__filename, (err, buffer) => { const tag = buffer.slice(-2, -1); tag[0] = 'B'; console.log(buffer.toString());

下面修改了
缓冲区的一个片

这样做时,它也会修改原始的
缓冲区
。如果我在
数组上执行类似的操作,那么原始数组将保持不变

那么,这种行为是Node.js上的
slice
方法的具体实现的结果吗

const fs = require('fs');

fs.readFile(__filename, (err, buffer) => {
  const tag = buffer.slice(-2, -1);
  tag[0] = 'B';

  console.log(buffer.toString());
});

 // TAG: A
医生说

返回一个新缓冲区,该缓冲区引用与原始缓冲区相同的内存,但偏移量和剪切量由起始索引和结束索引决定。注意:修改新缓冲区片将修改原始缓冲区中的内存,因为两个对象的分配内存重叠