this指向 和更改this指向


更改this指向


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只有两个参数,而且第二个参数为数组

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。