1. 程式人生 > >js中this指向的三種情況

js中this指向的三種情況

js中this指向的幾種情況

一、全域性作用域或者普通函式自執行中this指向全域性物件window

//全域性作用域
 	console.log(this);//Window 
//普通函式
	function fn(){
     	console.log(this); //Window
   }
    fn(); //函式加括號呼叫叫函式自執行,函式自執行時,內部的this指向頂層物件/window

二、事件函式內部的this指向事件源:注意在事件函式中如果包含普通函式,普通函式自執行後,內部this還是指向window

 //事件函式內部的this指向事件源
    document.body.onclick = function(){
    	 this.style.height = "1000px";
      	 console.log(this); //body物件
      	 function fn(){
           console.log(this); //Window
      	 }
      	 fn(); //函式加括號呼叫叫函式自執行,函式自執行時,內部的this指向頂層物件/window
        };

三、物件方法呼叫時,this指向呼叫的物件

let obj = {
    name : "lanlan",
     fn : function(){
         console.log(this);
     },
     lacy : {
         name : "didi",
         fn : function(){
             let num = 10;
             console.log(this);
         }
     }
 };  
   obj.fn(); //obj
   obj.dudu.fn(); //lacy