zoukankan      html  css  js  c++  java
  • apply、call、bind方法调用

    ---恢复内容开始---

    首先这三个方法的作用都是用来改变this的值,而this的值一般有几种情况。

    1、函数作为一个对象的一个方法来调用,此时this的值指向对象。

    var a={
      v:0;
      f:function(xx){
        this.v=xx;
        }
      }
    a.f(1);

    2、函数的正常调用,此时的this指向全局对象,一般来说是window对象。

    function f(x){
      this.x=xx;
    } f(
    1);

    3、正常函数,但是用new来调用函数,此时this的值指向新创建的对象。

    function f(xx){
      this.x=xx;
    }
    var b=new f(1);

    而当我们使用apply/call/bind函数调用时改变this的值。

    apply函数,第一个参数是改变之后的this的指向对象,第二个参数是传递的参数的数组,是立即执行的。

    call函数,第一个参数是改变之后的this的指向对象,但是后来的参数是不定的,有多少个传多少个,必须明确额度传递每一个参数,也是立即执行的。

    bind函数和call相似,第一个参数是this的指向对象,从第二个开始时接受的参数列表,但是bind函数是返回函数,需要调用而不是立即执行。

    ---恢复内容结束---

  • 相关阅读:
    TCP流量控制和拥塞控制
    延迟确认和Nagle算法
    浅谈TCP三次握手和四次挥手
    中介者模式
    代理模式
    装饰者模式
    生成器模式(构建者模式)
    策略模式
    模板方法模式
    抽象工厂模式
  • 原文地址:https://www.cnblogs.com/tutuj/p/10985519.html
Copyright © 2011-2022 走看看