函数中this指向问题以及this四大绑定原则

一、

普通调用方式 => window

function fn() {
            console.log(this);
        }
        fn();

构造函数调用=> 实例对象,原型对象里面的方法也指向实例对象

 function Star(){  
        }
        Star.prototype.sing = function(){
            //...
        }
         var ldh = new Star();

对象方法的调用 => 该方法所指的对象

var o={
           hello:function (){
               console.log(this);
           }
       }
       o.hello();`

事件绑定方法 => 绑定事件对象

 var btn = document.querySelector('button');
        btn.onclick = function(){
            console.log(this);
        }

定时器函数 => window

       window.setTimeout(function(){
           console.log(this);
       },1000)
       window.setInterval(function(){
           console.log(this);
       },1000)

解决方法1
使用that获取btn的this指向

    //点击按钮使按钮三秒后可以再点击
    
    
                    
                    

你可能感兴趣的:(函数中this指向问题以及this四大绑定原则)