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
  • 相关阅读:
    提交按钮变灰
    解析spring启动加载dubbo过程
    shiro的SecurityUtis
    spring集成shiro登陆流程(下)
    spring集成shiro登陆流程(上)
    shiro的DelegatingFilterProxy怎么找到ShiroFilterFactoryBean
    sql多表关联
    android常用控件
    android控件之EditText
    浅议iOS网络数据解析
  • 原文地址:https://www.cnblogs.com/czh64/p/11969476.html
Copyright © 2011-2022 走看看