你真的懂this吗?

首先,我们为什么要学js?

1, this使用频率很高,如果我们不懂this,那么在看别人的代码或者是源码的时候,就会很吃力。
2, 工作中,滥用this,却没明白this指向的是什么,而导致出现问题,但是自己却不知道哪里出问题了。
3, 合理的使用this,可以让我们写出简洁且复用性高的代码。
4,面试的高频问题,回答不好,抱歉,出门右,不送。

this到底是什么?

首先this肯定不是指的自己本身,this就是一个指针,指向调用函数的对象。总结起来就是一个六字真言(谁调用,指向谁),下面让我们一起来看看吧。

function fn(){
  var aa = '你真棒'
  console.log(this)//window
}
fn()
//为什么这里的this是window呢,是因为在非严格模式下,如果这个函数有this,并且没有被上一级调用的话就会指向window

下面我们来看这个

var ff = {
  a:22,
  ss:function(){
    console.log(this.a,this)//22,{a:22,ss:f}
  }
}
ff.ss()

为什么这里不是window呢,是因为如果一个函数中有this,这个函数会被上一级对象调用,那么this就会指向上一级对象

var aa = {
  b:41,
  bb:{
    b:23,
    child:function (){
      console.log(this)//window
    }
  }
}
var ss = aa.bb.child
ss()

这里为什么会是window呢,是因为把aa.cc.child赋值给了全局变量ss,最终的调用事件是在window作用域下调用的ss(),所以最后是window
好了this就到这里了,谢谢大家进来观看,动动你的小手给个赞再走吧!谢谢你呢。

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

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,372评论 0 3
  • 1. this之谜 在JavaScript中,this是当前执行函数的上下文。因为JavaScript有4种不同的...
    百里少龙阅读 1,040评论 0 3
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,275评论 0 4
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 通过spark-submit会固定占用一占的资源,有什么办法,在任务不运作的时候将资源释放,让其它任务使用呢,ya...
    kikiki2阅读 87评论 0 1