5、js——this说明

       <script type="text/javascript">
        
            /*
             * 解析器在调用函数每次都会向函数内部传递进一个隐含的参数,
             *     这个隐含的参数就是this,this指向的是一个对象,
             *     这个对象我们称为函数执行的上下文对象
             *     
             *  根据函数的调用方式的不同,this会指向不同的对象
             *         1.以函数的形式调用时,this永远都是window
             *         2.以方法的形式调用时,this就是调用方法的那个对象
             */
            
            
            function fun(){
                console.log(this);//[object Window]
            }
             
            fun();
            
            //-----------------------------------------------------------------------------------
            
            function fun2(){
                console.log(this);
                console.log(this.name);//孙悟空
            }
            
            
            //创建一个对象  
            var obj = {
                name:"孙悟空",
                sayName:fun2
            };
            
            console.log(obj.sayName == fun2);//true
            
            //调用的是同一个函数,结果却不同,根据函数的调用方式的不同,this会指向不同的对象
            obj.sayName(); //[object Object] 
            
            fun2();//[object Window]
            
        </script>

举例补充:

        <script type="text/javascript">
            
            //创建一个name变量
            var name = "全局";
            
            //创建一个fun()函数
            function fun(){
                console.log(this.name);
            }
            
            //创建两个对象
            var obj = {
                    name:"孙悟空",
                    sayName:fun
            };
            
            var obj2 = { 
                    name:"沙和尚",
                    sayName:fun
            };
            
            //--------------------------------------------------------------------------------------
            //我们希望调用obj.sayName()时可以输出obj的名字
            
            obj.sayName();//孙悟空
            
            obj2.sayName();//沙和尚
            
        
            
        </script>
原文地址:https://www.cnblogs.com/lyh233/p/12851989.html