JS基础篇-手写bind函数

bind的具体使用

bind方法主要是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this会指向传入bind()的第一个参数的值。

例如fn.bind(obj)其实和obj.fn()效果是一样的。

直接上代码:

function func(a,b){
    console.log(`这里的this是${this};参数一是${a},参数二是${b},这是个${this.ace}`);
}

let func2 = func.bind({ace:'lily'},"ace","bob");
func2();
let func3 = func.bind(this,"ace,bob");
func3();

在这里插入图片描述

手写bind

在理解了bind()具体实现了一个什么功能之后,我们就可以开始写了。

Function.prototype.bind1 = function(){
    //首先需要处理参数-将参数转换为数组
    const args = Array.prototype.slice.call(arguments);
    //获取this-数组第一项
    const t = args.shift(); 
    //fn.bind() 的fn
    const self = this;
    //返回一个函数
    return function(){
        self.apply(t,args);
    }
}
发布了6 篇原创文章 · 获赞 0 · 访问量 125

猜你喜欢

转载自blog.csdn.net/jinbiao8246/article/details/105292873