码迷,mamicode.com
首页 > 其他好文 > 详细

关于this的指向

时间:2019-03-18 13:52:02      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:function   fun   argument   console   onclick   关于   扩展   this   .sh   

1、谁调用该函数this指向就指向谁

2、回调函数中this的指向永远都指向window

3、箭头函数指向最近的作用域,箭头函数本身是没有this的指向

4、定时器永远指向window 

5、严格模式下函数指向undefined,除了箭头函数和定时器以外,箭头函数是没有arguments,因此在ES6中应该的是扩展运算符


 

setTimeout(function() {
  console.log(this)
}, 0)

==》window


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

==》window


 

 document.onclick = function(){

   fn();
 }

 ==》window


 

var obj = {

  name:"123",
  age:19,
  show(){
    console.log(this);
  }
}

obj.show();

==》obj


 

var obj = {

  name:"123",
  age:19,
  show(){
    (function(){
      console.log(this)
    })()
  }
}
obj.show();

==》window


 

 var obj = {
   name:"123",
   show(){
     var fn = ()=>{
       console.log(this); 
     }

     fn();
   }
 }

 obj.show();

==》obj


 

 class Person{
   constructor(name){
     this.name = name;
   }

   show(){
     console.log(this);
   }
 }

 var p = new Person("张三");
 p.show();

==》指向实例化对象


 

 "use strict"

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

 fn();

==》undefined


 setTimeout(function(){
   console.log(this);
 },0)

==》window


 

关于this的指向

标签:function   fun   argument   console   onclick   关于   扩展   this   .sh   

原文地址:https://www.cnblogs.com/szj-/p/10551397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!