• 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>
  • 相关阅读:
    input 框变成不可编辑的。
    git 首次往远程仓库提交项目过程。(使用idea操作)
    nacos 导入项目配置(yml文件)步骤
    instr MySQL数据库函数用法
    遍历 map 的方法
    基于分布式思想下的rpc解决方案(1)
    深入理解通信协议-(1)
    Tomcat(3)--性能优化
    并发编程(5)--并发容器
    并发编程(4)--显示锁和AQS
  • 原文地址:https://www.cnblogs.com/lyh233/p/12851989.html
Copyright © 2020-2023  润新知