zoukankan      html  css  js  c++  java
  • 判断this如何指向

      1.(new绑定)函数是否在new中调用,如果是,this则指向这个心创建的对象本身

      var bar=new foo();     foo的this指向自身;

      2.(显示绑定)函数通过call apply或者bind(this指向,传入的参数),this绑定的是指定的对象
      var bar =foo.call(obj1); //foo的this指向boj1;

      apply直接调用了函数  把 "[]"内的参数转换成了参数

       ### ES6 ### 用"..."来代替 apply() ------------foo(...[1,2,3])

      bind()对函数参数进行了柯里化操作    把多个参数转化成单一参数的函数?(形容不准确)

      3.(隐式绑定)函数是否在某个上下文对象中调用(调用此函数的对象的作用域),如果是,this指向此对象的作用域

      var bar=obj1.foo();    //obj1.foo   foo中的this指向的是obj1      
      ########  bar();  //foo中的this指向的是window
      4.(默认绑定)     严格模式下,绑定到undefined ,否则绑定到全局对象中

      function foo(p1,p2){
        console.log(this.a);
      }
      var obj11={
        a:"666",
        foo:foo
      };
      var a="888";
      obj11.foo();//666
      var bars=obj11.foo;
      bars();//888

  • 相关阅读:
    Github注册过程以及对管理软件的了解
    进度总结
    总体心得
    学车后的领悟
    打工心得
    关于传统文化的对话实践计划书
    软件工程-课程总结
    结对编程项目---四则运算
    作业三
    目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点
  • 原文地址:https://www.cnblogs.com/trend/p/7552203.html
Copyright © 2011-2022 走看看