浅谈一下javascript中的this对象
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对象相关推荐
- 浅谈ASP.net中的DataSet对象
在我们对数据库进行操作的时候,总是先把数据从数据库取出来,然后放到一个"容器"中,再通过这个"容器"取出数据显示在前台,而充当这种容器的角色中当属DataSet ...
- 浅谈V8引擎中的垃圾回收机制
浅谈V8引擎中的垃圾回收机制 这篇文章的所有内容均来自 朴灵的<深入浅出Node.js>及A tour of V8:Garbage Collection,后者还有中文翻译版V8 之旅: 垃 ...
- c语言弱符号与函数指针,浅谈C语言中的强符号、弱符号、强引用和弱引用【转】...
首先我表示很悲剧,在看<程序员的自我修养--链接.装载与库>之前我竟不知道C有强符号.弱符号.强引用和弱引用.在看到3.5.5节弱符号和强符号时,我感觉有些困惑,所以写下此篇,希望能和同样 ...
- 浅谈导航数据中POI搜索技术原理
浅谈导航数据中POI搜索技术原理之一 王健 导航技术的应用已经成为现在生活中重要组成部分,为我们的生活提供了极大的便利.基本都有这样生活的体验,搜索自己位置附近的银行网点.餐馆.那么这些POI是如何快 ...
- 嵌入式AI —— 6. 为糖葫芦加糖,浅谈深度学习中的数据增广
没有读过本系列前几期文章的朋友,需要先回顾下已发表的文章: 开篇大吉 集成AI模块到系统中 模型的部署 CMSIS-NN介绍 从穿糖葫芦到织深度神经网络 又和大家见面了,上次本程序猿介绍了CMSIS- ...
- 让数据站住脚-浅谈用户研究中的信度与效度
让数据站住脚-浅谈用户研究中的信度与效度 在用户研究工作中,如何让自己的数据和结论更有说服力,是很重要的问题.最近将自己积累的用研信度和效度的笔记整理一下,罗列在文中,希望对大家有所帮助. 一.调查的 ...
- html 怪异模式,CSS_浅谈CSS编程中的怪异模式,怪异模式盒模型
今天学习了 - phpStudy...
浅谈CSS编程中的怪异模式 怪异模式盒模型 今天学习了一下css3的box-sizing属性,顺便又温习了一下css的盒模型,最后觉得有必要对盒模型做一个全面整理. 先不考虑css3的情况,盒模型一共 ...
- 浅谈工作/学习中找bug的思路_0_调试、try-catch以及打印报错信息和百度的方法、No default constructor for entity: com.gyf.bos.mod
浅谈工作/学习中找bug的思路_0 文章目录 浅谈工作/学习中找bug的思路_0 调试.try-catch-以及打印报错信息和百度的方法 前言 描述 解决思路1 -- 检查移植的代码,细枝末节也不要忽 ...
- python程序调用写好的代码_扣丁学堂浅谈Python编程中NotImplementedError的使用方法...
扣丁学堂浅谈Python编程中NotImplementedError的使用方法 2018-07-04 14:08:02 2559浏览 本篇文章扣丁学堂 Python编程中raise可以实现报出错误的功 ...
最新文章
- anaconda+python3.6利用命令安装BeautifulSoup4-4.6.0
- 配置windows驱动开发环境
- 通过 Transifex 中文化开源软件
- 在Jetty中设置SSL
- NFS服务的端口分配
- VRAY之HDRI材质的应用蓝海创意云
- 老徐和阿珍的故事:强引用、软引用、弱引用、虚引用,傻傻分不清楚
- 服务器3389信息,服务器3389远程记录查看
- 批处理bat schtasks 启动远程应用
- [凸优化]1-凸集和凸函数
- 如何适配处理iphoneX底部的横条 ?(转)
- D2D D3D12 渲染视频帧思路及实现
- 【深度】谭铁牛院士谈人工智能发展新动态
- Flutter 发布iOS版本app
- 走进AI时代的文档识别技术 之文档重建
- 那些关于程序员的段子
- windows系统bat批处理 微信多开,软件多开
- 航班信息查询和检索系统
- Android N BlockedNumberContract原生黑名单(一)
- Android知识点总结