zoukankan      html  css  js  c++  java
  • js-this

    初步理解this:

    解析器(或叫浏览器)在调用函数每次都会向函数内部传递进一个隐含的参数。

            function fun(a,b){
                console.log("a="+a+",b="+b);
            }
            fun(123,456);//a=123,b=456

    这是我们传递参数,而不是函数向函数内部传递参数。

    这个隐含的参数就是this,这个this浏览器每次都会传。

            function fun(a,b){
                console.log(this);
            }
            fun(123,456);//this:Window {parent: Window, postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, …}

    这里this是全局对象window;

    this指向的是一个对象,这个对象我们称为函数执行的上下文对象

            function fun(a,b){
                console.log(this);
            }
            var obj={
                name:'孙悟空',
                sayName:fun
            }
            obj.sayName();//this:{name: "孙悟空", sayName: ƒ}

    根据我们这个函数的调用方式的不同,this会指向不同的对象。

      (1)以函数的形式调用时,this永远都是window;

      (2)以方法的形式调用时,this是调用方法的那个对象;

    深入理解this(难题): 

            window.val=1;
            var obj={
                val:2,
                dbl:function(){
                    this.val *=2;
                    val *=2;
                    console.log(val);
                    console.log(this.val);
                }
            };
            obj.dbl();
            var func=obj.dbl;
            //结果:2 4 8 8
  • 相关阅读:
    机器人的运动范围
    矩阵中的路径
    MySql数据库表的基本连接
    Java虚拟机垃圾收集算法
    spring_boot 配置
    js 表格合并单元格
    js数组操作
    前端定位Position属性四个值
    form表单在发送到服务器时候编码方式
    多文件上传CommonsMultipartResolver
  • 原文地址:https://www.cnblogs.com/czh64/p/11969476.html
Copyright © 2011-2022 走看看