Java教程

JavaScript手写bind

本文主要是介绍JavaScript手写bind,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
// 模拟 bind
Function.prototype.bind1 = function () {
    // 使用arguments可以获取一个函数所有的参数
    // 使用Array.prototype.slice.call将参数拆解为数组
    const args = Array.prototype.slice.call(arguments)

    // 获取 this(数组第一项)
    const t = args.shift()

    // fn1.bind(...) 中的 fn1
    const self = this

    // 返回一个函数
    return function () {
        return self.apply(t, args)
    }
}

function fn1(a, b, c) {
    console.log('this', this)
    console.log(a, b, c)
    return 'this is fn1'
}

const fn2 = fn1.bind1({x: 100}, 10, 20, 30)
const res = fn2()
console.log(res)

 

这篇关于JavaScript手写bind的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!