javascript中的this关键字

1、JS中this代表的是当前行为的执行主体;JS中的context代表的是当前行为执行的环境;例如我(主体this)在北京(执行的环境context)吃烤鸡(当前的行为function),this和和上下文没有必然联系即this是谁和函数在哪定义的和在哪执行的没有关系。

2、如何区分js中的this主体?

  a、函数执行的时候首先看函数前面是否有点,如果有点,那么点前面是谁this就是谁,如果没有this是window。如:

    function fn(){

      console.log(this);

    }

    var obj = { fn:fn}

    fn();  // window

    obj.fn();  //obj

  b、自执行函数中this永远是window;

  c、给一个dom元素绑定事件方法,方法中的this是当前事件的对象。如:

    <div id="divId">点我</div>

    <script>
      function fn(){
        console.log(this);
      }
      document.getElementById("#divId").onclick = fn;
      document.getElementById("#divId").onclick = function(){
        // this 指的是点击的主体对象divId
        fn(); //this指的是window和在哪个作用域环境中执行的无关
      };
    </script>

 

  列子:

 

 

        

   d、在构造函数模式中,类中(函数体中)出现的this如:this.xxx = xxx 指的是当前类的一个实例

  

 

posted on 2018-03-11 21:34  ywx354980  阅读(89)  评论(0编辑  收藏  举报