打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
前端面试题整理——手写bind函数
    var arr = [1,2,3,4,5]
    console.log(arr.slice(1,4))
    console.log(arr)


    Function.prototype.bind1 = function(){
        // arguments是个列表不是数组,将参数拆解为数组
        const args = Array.prototype.slice.call(arguments)
        // 获取this(数组第一项),shift方法是删除第一项返回第一项值
        const t = args.shift()
        // fn1.bind(...)中的fn1
        const self = this
        //返回一个函数
        return function(){
            return self.apply(t,args)
        }

    }

    function fn(a,b){
        console.log(this)
        console.log(a,b)
        return 'ok'
    }
    const fn2 = fn.bind1({x:100},10,20)
    console.log(fn2())

考点:

使用闭包和理解作用域

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
初、中级前端应该要掌握的手写代码实现
JavaScript面试问题:函数式编程
一些很实用的JavaScript函数封装集合(ES6)
bind,call,apply模拟实现
前端整理——javaScript部分
call、apply、bind函数的理解以及手写。
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服