this是什么?

this关键字是函数运行时自动生成的一个内部对象,也被称作为环境对象,只能在函数内部使用。谁‘调用’this,this就指向谁。打个比方来说:this就相当于中文中的“我”,谁说出来,就代表谁。

函数中this的三种指向

普通函数;  函数名()               this指向window

对象方法;     对象名.方法名()   this指向对象

构造函数;  new 函数名()       this指向new创建实例对象

1.普通函数

首先我们这里声明一个函数,在函数内部console.log(this),然后下面我们调用函数,猜一猜控制台会打印什么结果?

最后控制台会打印window,这就表明在普通函数中的this指向window。首先我们要知道上面说到的谁调用this,this就指向谁,这里我们可以看我们是直接通过函数名()来调用的,那就有人会说,它为什么不指向函数本身呢?这里我们就要知道,其实函数的调用也可以这么写

window作为JavaScript中的顶级对象是可以省略不写的

所以通过上面的研究,我们得出结论普通函数中this指向window

2.对象的方法

这里我们申明了一个对象,对象里面放了一个函数,通过对象名.方法名的方式来调用这个函数。

毋庸置疑,这里肯定输出的是object。还是那句话,谁调用this,this就指向谁,这里调用this的是对象,那么this的指向一定是对象。

3.构造函数

我们通过new关键字创建一个实例对象,猜一猜这里会输出什么?

如果熟悉构造函数的创建的话一定会知道,这里的this指向new创建的实例对象。

最后通过以上得出,普通函数this指向window、对象的方法this指向对象、构造函数this指向new创建的实例对象。谁调用this,this就指向谁。

浅谈一下javascript中的this对象相关推荐

  1. 浅谈ASP.net中的DataSet对象

    在我们对数据库进行操作的时候,总是先把数据从数据库取出来,然后放到一个"容器"中,再通过这个"容器"取出数据显示在前台,而充当这种容器的角色中当属DataSet ...

  2. 浅谈V8引擎中的垃圾回收机制

    浅谈V8引擎中的垃圾回收机制 这篇文章的所有内容均来自 朴灵的<深入浅出Node.js>及A tour of V8:Garbage Collection,后者还有中文翻译版V8 之旅: 垃 ...

  3. c语言弱符号与函数指针,浅谈C语言中的强符号、弱符号、强引用和弱引用【转】...

    首先我表示很悲剧,在看<程序员的自我修养--链接.装载与库>之前我竟不知道C有强符号.弱符号.强引用和弱引用.在看到3.5.5节弱符号和强符号时,我感觉有些困惑,所以写下此篇,希望能和同样 ...

  4. 浅谈导航数据中POI搜索技术原理

    浅谈导航数据中POI搜索技术原理之一 王健 导航技术的应用已经成为现在生活中重要组成部分,为我们的生活提供了极大的便利.基本都有这样生活的体验,搜索自己位置附近的银行网点.餐馆.那么这些POI是如何快 ...

  5. 嵌入式AI —— 6. 为糖葫芦加糖,浅谈深度学习中的数据增广

    没有读过本系列前几期文章的朋友,需要先回顾下已发表的文章: 开篇大吉 集成AI模块到系统中 模型的部署 CMSIS-NN介绍 从穿糖葫芦到织深度神经网络 又和大家见面了,上次本程序猿介绍了CMSIS- ...

  6. 让数据站住脚-浅谈用户研究中的信度与效度

    让数据站住脚-浅谈用户研究中的信度与效度 在用户研究工作中,如何让自己的数据和结论更有说服力,是很重要的问题.最近将自己积累的用研信度和效度的笔记整理一下,罗列在文中,希望对大家有所帮助. 一.调查的 ...

  7. html 怪异模式,CSS_浅谈CSS编程中的怪异模式,怪异模式盒模型 今天学习了 - phpStudy...

    浅谈CSS编程中的怪异模式 怪异模式盒模型 今天学习了一下css3的box-sizing属性,顺便又温习了一下css的盒模型,最后觉得有必要对盒模型做一个全面整理. 先不考虑css3的情况,盒模型一共 ...

  8. 浅谈工作/学习中找bug的思路_0_调试、try-catch以及打印报错信息和百度的方法、No default constructor for entity: com.gyf.bos.mod

    浅谈工作/学习中找bug的思路_0 文章目录 浅谈工作/学习中找bug的思路_0 调试.try-catch-以及打印报错信息和百度的方法 前言 描述 解决思路1 -- 检查移植的代码,细枝末节也不要忽 ...

  9. python程序调用写好的代码_扣丁学堂浅谈Python编程中NotImplementedError的使用方法...

    扣丁学堂浅谈Python编程中NotImplementedError的使用方法 2018-07-04 14:08:02 2559浏览 本篇文章扣丁学堂 Python编程中raise可以实现报出错误的功 ...

最新文章

  1. anaconda+python3.6利用命令安装BeautifulSoup4-4.6.0
  2. 配置windows驱动开发环境
  3. 通过 Transifex 中文化开源软件
  4. 在Jetty中设置SSL
  5. NFS服务的端口分配
  6. VRAY之HDRI材质的应用蓝海创意云
  7. 老徐和阿珍的故事:强引用、软引用、弱引用、虚引用,傻傻分不清楚
  8. 服务器3389信息,服务器3389远程记录查看
  9. 批处理bat schtasks 启动远程应用
  10. [凸优化]1-凸集和凸函数
  11. 如何适配处理iphoneX底部的横条 ?(转)
  12. D2D D3D12 渲染视频帧思路及实现
  13. 【深度】谭铁牛院士谈人工智能发展新动态
  14. Flutter 发布iOS版本app
  15. 走进AI时代的文档识别技术 之文档重建
  16. 那些关于程序员的段子
  17. windows系统bat批处理 微信多开,软件多开
  18. 航班信息查询和检索系统
  19. Android N BlockedNumberContract原生黑名单(一)
  20. Android知识点总结

热门文章

  1. QGC二次开发 # 视频流代码分析
  2. 自己弄了个数字币量化分析软件,感兴趣的朋友自己下载
  3. 使用java代码查询本机ip地址
  4. 什么是 Web server
  5. 项目中JS脚本的执行方式
  6. Unity由于找不到MSVCP120.dll,无法继续执行代码
  7. 利用ntp服务同步时间(史上最简单)
  8. 详解美国四大OTT电视直播服务
  9. Python中变量名后加冒号“:”以及函数后面的箭头“->”含义
  10. 约克大学计算机语言班,约克大学语言班