Javascript 扩展Uint8Array,然后map给出错误的结果

Javascript 扩展Uint8Array,然后map给出错误的结果,javascript,Javascript,为什么hex()实现没有按预期工作,但是hex2()工作正常 类字节扩展Uint8Array{ 十六进制(){ 返回这个.map(x=>x.toString(16).padStart(2,“0”)).join(“”); } hex2(){ 返回[…this].map(x=>x.toString(16).padStart(2,“0”)).join(“”); } } 常数a=新字节([1,2,30]); console.log(a.hex());//120 console.log(a.hex2()

为什么
hex()
实现没有按预期工作,但是
hex2()
工作正常

类字节扩展Uint8Array{
十六进制(){
返回这个.map(x=>x.toString(16).padStart(2,“0”)).join(“”);
}
hex2(){
返回[…this].map(x=>x.toString(16).padStart(2,“0”)).join(“”);
}
}
常数a=新字节([1,2,30]);
console.log(a.hex());//120
console.log(a.hex2());//01021e
所有“legit”
.map
方法将返回与其存在接口相同的对象

因此,对于TypedArray,它将返回一个TypedArray

const arr=new Uint8Array();

log(Uint8Array的arr.map(()=>{})实例)很有趣。