js中this指向

1.this总是指向函数的直接调用者
2.如果有new关键字,this指向new出来的那个对象
3.DOM事件中this指向目标元素
4.箭头函数中的this指向他所在函数级别的作用域


    let p1={name:'p1'}
     let p2={name:'p2'}
     let getName=function(){
         console.log(this,'函数')
     }
     getName()//window
     p1={
         ...p1,
         getName
     }
     p1.getName()//p1
    
     const Cat=function(name,age){
         this.name=name
         this.age=age
        console.log(this,'cat')//Cat
     }
     let c1=new Cat('mimi',2)

指向箭头函数定义时所处的对象,而不是箭头函数使用时所在的对象,默认使用父级的this..箭头函数中的this,首先从它的父级作用域中找,如果父级作用域还是箭头函数,再网上找,如此直至找到this的指向

var a={
    b:function(){
        console.log(this)
  },
    c:{d:()=>{
        console.log(console.log(this))
        }}
}

a.b()//a
a.c.d() //window
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在js中从上下文角度看this指向 话不多说先放码 请先写出各个函数调用之后的console输出 嗯。。。最后我会...
    当时_寻常阅读 164评论 0 0
  • 葡萄藤PPT JS中this的指向 大家好,我是IT修真院郑州分院第6期的学员王栋,一枚正直、纯洁、善良的前端程序...
    17064阅读 633评论 0 2
  • (1)事件调用环境:谁触发事件,函数里面的this指向就是谁(某个DOM)。 (2)node全局环境:this指向...
    温室寻荒凉阅读 259评论 0 0
  • 先“死记硬背”以下几条规律:1、在函数体中,非显式或隐式的简单调用函数时,在严格模式下,函数内的this会被绑定到...
    少_游阅读 161评论 0 0
  • this的在什么时候确定下来的 this和作用域不一样,作用域是声明的时候就定下来了,this是在调用的时候才确定...
    土豪码农阅读 10,635评论 0 6