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函数是返回函数,需要调用而不是立即执行。

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

  • 相关阅读:
    py-day2-4 python 集合
    LR_问题_控制器不能使用定义的负载生成器
    LR_问题_无法使用LR的Controller,提示缺少license
    LR_问题_在导入wsdl时出现parsing error
    class, extends和super es6语法
    格式化日期
    CLR
    【sqlserver】批量插入10万数据
    php正则表达式匹配函数
    css overflow
  • 原文地址:https://www.cnblogs.com/tutuj/p/10985519.html
Copyright © 2011-2022 走看看