这个函数不懂,可以帮我逐句解释下什么意思吗?
发布于 7 年前 作者 weifang 4171 次浏览 来自 问答

function ab2hex(buffer) {

    var hexArr = Array.prototype.map.call(

    new Uint8Array(buffer),

    function (bit) {

        return ('00' + bit.toString(16)).slice(-2)

    })

    return hexArr.join('');

}

5 回复

Array.prototype.map.call 用来传入一个类数组对象

new Uint8Array(buffer),是一个ArrayBuffer

通俗总结:ArrayBuffer转换为byte

首先new Uint8Array(buffer)构造函数会生成一个数组a,然后通过call方法将map方法的this指向a,相当于a数组调用一次map方法,所以函数可以改写成:

function ab2hex(buffer) {

    var hexArr = new Uint8Array(buffer).map(

        function (bit) {

        return (‘00’ + bit.toString(16)).slice(-2)

        }

    )

    return hexArr.join(’’);

}

剩下的那些toString、slice和join方法可以自行百度解决

去报个班吧

w3cschool了解一下  函数 对象 闭包 数据类型  原型链   好多知识呢

回到顶部