zoukankan      html  css  js  c++  java
  • this 的显示绑定-call、apply

    简单的栗子:

    function(){
      console.log(this.a);
    }
    var obj={

      a:2  

    };

    foo.call(obj);//2  call把foo中的this指向了obj

    ------------------------------注意↓  "装箱"

    当第一个参数传入的是:字符串类型、布尔、数字类型   这个原始值会被转换成它的对象形式

    new String()  

    new Boolean()

    new Number()

    -----------------------------显示绑定-栗子1↓

    function foo(){

      console.log(this.a);

    }
    var obj={
      a:2
    };
    var bar=function(){

      foo.call(obj);

    };

    bar();//

    setTimeout(bar,100);//
    bar.call(window);//
    -----------------------------显示绑定-栗子2↓

    function foo(something){//3
      console.log(this.a,something);this.a=2 
      return this.a+something;  //5
    }
    var obj={

      a:2

    };

    var bar=function(){
      return foo.apply(obj,arguments);  //arguments=3    foo中的this指向了obj  

    };
    var b=bra(3);
    console.log(b);//5

    -----------------------------显示绑定-栗子3---------------Function.prototye.bind↓

    function foo(something){

      console.log(this.a,something);
      return this,a+something;

    }

    function bind(fn,obj){//辅助绑定函数

      return function(){

        return fn.apply(obj,arguments);

      }

    }
    var obj={

      a:2

    };
    var bar=bind(foo,obj);

    var b=bar(3);
    console.log(b);

    ------------------------后续详细说call、apply的参数

  • 相关阅读:
    【BZOJ3190】[JLOI2013]赛车 单调栈+几何
    【BZOJ2738】矩阵乘法 整体二分
    PR 批量导入
    JAVA 水果机游戏及编码
    sap 图标查看
    ABAP 给动态变量赋值
    abap 数字移动小游戏
    FI模块与SD、MM的接口配置方法
    信用控制增强
    SAP-财务知识点
  • 原文地址:https://www.cnblogs.com/trend/p/7527573.html
Copyright © 2011-2022 走看看