zoukankan      html  css  js  c++  java
  • apply、call、bind比较

    apply、call 区别


     对于apply、call二者而言,作用完全一样,都是改变函数this的指向,只不过接收的参数不一样。

    通过如下调用:

    bind


     bind方法与apply和call相似,也是可以改变函数内的this指向。

    bind方法会创建一个新函数,称为绑定函数,需要调用才能执行。

    这里我们创建了一个新的函数,当使用 bind 创建一个绑定函数之后,它被执行的时候,它的 this 会被设置成 foo,而不是像我们调用 bar() 时的全局作用域。

    bind、apply、call比较


     bind方法与apply和call相似,也是可以改变函数内的this指向。

     

    三个都输出81,但是bind()方法后边多了对括号。

    也就是说,当你希望改变上下文环境之后并非要立即执行,而是回调执行的时候,使用bind()方法。而applycall则会立即执行函数。

    总结

    1. apply、call、bind三者都是改变函数this的指向;
    2. allpy、call、bind三者第一个参数都是this要指向的对象。
    3. apply、call、bind三者都可以利用后续参数传参。
    4. bind返回对应函数,便于稍后调用;apply、call则是立即调用。
  • 相关阅读:
    [USACO08FEB]酒店Hotel 线段树 BZOJ 1593
    有趣的数 zoj 月赛
    [ZJOI2008]生日聚会 BZOJ1037 dp
    借教室 差分+二分答案
    HackerRank
    旅行计划 记忆化搜索
    灾后重建 Floyd
    [USACO10OCT]湖计数Lake Counting 联通块
    [TJOI2013]循环格 费用流 BZOJ3171
    高斯消元
  • 原文地址:https://www.cnblogs.com/chailuG/p/11347066.html
Copyright © 2011-2022 走看看