美文网首页
call,apply,bind用法

call,apply,bind用法

作者: 印第安老斑鸠_333 | 来源:发表于2019-03-09 19:38 被阅读0次

    为了避免函数内this的不确定性,我们需要绑定this。通过call,apply,bind三种方法都可以实现this的绑定

    1,Function.prototype.call

    关于函数的调用方法:①,fun();②,fun.call();

    上面这两种调用都可以执行函数,但是call方法调用不同于普通调用的地方就是它能绑定函数内的this

    call方法接受多个参数,第一个参数就是绑定函数内的this,如果为 nullundefined,那么this默认就是全局对象window。如果为原始类类型值,那么就会把原始值类型的值转成与之对应类型的包装对象(非严格模式)。

    call方法第一个参数后面的参数就是调用函数是需要传入的参数

    下例就是用call方法绑定函数内部的this:

    call

    2,Function.prototype.apply

    apply方法与call方法类似,不同的地方就是用apply方法调用函数的时候,给函数内部传入参数是以数组的方式传入的。见下例:

    apply

    3,Function.prototype.bind

    bind方法除了绑定this,还能返回一新个函数,但是与上面两种方法不同的是它不能调用函数。只是把绑定了this的函数给返回。

    bind方法除了第一个参数绑定this,后面的参数可以绑定原函数的参数。例如:

    bind

                                                                                               以上就是这三个方法的用法!

                                                                                               图片来自阮一峰JS教程

    相关文章

      网友评论

          本文标题:call,apply,bind用法

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