美文网首页
改变this指向的三种方法

改变this指向的三种方法

作者: 安北分享 | 来源:发表于2021-06-20 13:33 被阅读0次

    call、apply、bind三者为改变this指向的方法。

    共同点:第一个参数都为改变this的指针。若第一参数为null/undefined,this默认指向window

    call(无数个参数)

    第一个参数:改变this指向
    第二个参数:实参
    使用之后会自动执行该函数

    function fn(a,b,c){
            console.log(this,a+b+c); // this指向window
        }
        fn();
        fn.call(document,1,2,3);//call改变之后this指向document  
        //输出 #document 6   1,2,3是实参 结果相加为6
    

    apply(两个参数)

    第一个参数:改变this指向
    第二个参数:数组(里面为实参)
    使用时候会自动执行函数

    function fn(a,b,c){
            console.log(this,a+b+c); 
        }
        fn();
        fn.apply(document,[1,2,3]); 
    

    bind(无数个参数)

    第一个参数:改变this指向
    第二个参数之后:实参
    返回值为一个新的函数
    使用的时候需要手动调用下返回 的新函数(不会自动执行)

    function fn(a,b,c){
        console.log(this,a+b+c); //window
    }
    let ff = fn.bind('小明',1,2,3); //手动调用一下
    

    call、apply与bind区别:前两个可以自动执行,bind不会自动执行,需要手动调用

    call、bind与apply区别:前两个都有无数个参数,apply只有两个参数,而且第二个参数为数组

    相关文章

      网友评论

          本文标题:改变this指向的三种方法

          本文链接:https://www.haomeiwen.com/subject/wwxsyltx.html