zoukankan      html  css  js  c++  java
  • call、apply、bind的区别

      

    • call 和 apply 特性一样

      • 都是用来调用函数,而且是立即调用

      • 但是可以在调用函数的同时,通过第一个参数指定函数内部 this 的指向

      • call 调用的时候,参数必须以参数列表的形式进行传递,也就是以逗号分隔的方式依次传递即可

      • apply 调用的时候,参数必须是一个数组,然后在执行的时候,会将数组内部的元素一个一个拿出来,与形参一一对应进行传递

      • 如果第一个参数指定了 null 或者 undefined 则内部 this 指向 window

    • bind

      • 可以用来指定内部 this 的指向,然后生成一个改变了 this 指向的新的函数

      • 它和 call、apply 最大的区别是:bind 不会调用

      • bind 支持传递参数,它的传参方式比较特殊,一共有两个位置可以传递

          1. 在 bind 的同时,以参数列表的形式进行传递

          1. 在调用的时候,以参数列表的形式进行传递

        • 那到底以谁 bind 的时候传递的参数为准呢还是以调用的时候传递的参数为准

        • 两者合并:bind 的时候传递的参数和调用的时候传递的参数会合并到一起,传递到函数内部

  • 相关阅读:
    JS小记
    chrome 插件开发
    js闭包理解
    文件名后缀详解
    Glut 回调函数小结
    vc++ 6.0下Glut的配置 及 Glut 框架介绍
    数字图像点运算实践 (直方图均衡和分段线性拉伸)
    event.keycode值大全
    Bookmarklet
    牛人经典语录
  • 原文地址:https://www.cnblogs.com/M-right/p/9530731.html
Copyright © 2011-2022 走看看