this关键字(个人学习笔记)

this关键字的理解:

            JS的this关键字表示的是当前行为的执行主体,this只与执行的主题有关,与函数在哪执行和定义无关。

this的判定:

         (1)函数执行时,首先看函数名前是否有" . ",有的话,this就是指向" . "前面的执行主体;否则就指向window。

         (2)立即执行函数的this永远指向window。

         (3)给元素的某一事件绑定方法,当事件触发时,执行相应的方法,方法中的this就时指向当前元素。

         (4)如图补充说明:

this关键字(个人学习笔记)_第1张图片
补充说明

            (5)使用构造函数创建实例时,函数体中的this指向new出来的实例对象,实例对象中定义的方法中的this需要看具体的执行主体,无法确定;构造函数原型prototype的方法中的this指向实例对象;如图中实例对象中定义的方法中的this就指向了window:

this关键字(个人学习笔记)_第2张图片
实例方法被保存到全局作用域

详解构造函数与不同函数this的差别:

            //函数预编译过程this ——>   window,运行机制如下:

               function    Test(){

                        var    a = 1;

                        function    b(){    }

                        //预编译产生AO对象:

                        /*AO{

                                a :undefined,

                                b :function(){    },

                                arguments : undefined,

                                this :  window

                        */

               }

                Test();

                //当把函数当作构造函数执行时,new的使用会使this的指向发生变化,具体细节前面笔记以写出

                //var    test = new Test();

你可能感兴趣的:(this关键字(个人学习笔记))