javascript中的this使用场景以及箭头函数中的this
this总是指向一个对象,有时指向全局对象,有时指向构造对象,有时指向DOM对象
1. 作为对象的方法调用
做为对象的方法调用时 this 指向对象本生
2. 作为普通函数被调用
普通函数里的this总是指向全局变量
对象的方法复制给变量,在通过变量来调用后对象的方法变成了普通函数
观看这个例子发现:
getName1 = Person.getName 是把getName1指向Person.getName方法的内存地址(方法本身没有被执行),其本质是个函数,所以在使用getName1() 时就是调用普通函数
getName2 = Person.getName() 是把Person.getName的返回值(已经执行了)bingxl赋值给getName2
对两个变量经行typeof操作
3. DOM事件触发函数里的this
DOM事件触发函数里的this指向DOM节点本身
test() 是一个普通函数,所以test里的this指向了全局对象window
4. 构造器调用
使用new运算符调用构造函数时会返回一个对象,构造函数里的this一般就指向返回的对象
当构造函数使用return显式的返回一个对象时new操作符返回的就是显式返回的对象
5. call , apply 和 bind
通过call 或apply调用会改变this的指向传入的对象
6. 箭头函数中的this
箭头函数中的this就是定义时所在的this, 也就是说 箭头函数本身没有this。
箭头函数也可以使用bind, call , applay来改变this指向
对比 arrow 和 sub 函数可以看出
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【原】PHP从入门到精通2小时【图文并茂】
原创内容,转载请注明。 主要内容: 搭建PHP开发环境 第一个helloworld程序 变量 全局变量 循环结构 函数 数组 面向对象编程 继承 接口 多态 日志 文件的读写 时间格式和时区 创建图形 从远程获取图形 生成二维码 php与数据库mysql的连接 mysql数据库面向对象编程 cookie技术 查看cookie session技术 查看session 文件上传 PHP(Hypertext Preprocessor)PHP超文本预处理程序,是一种嵌入HTML的脚本语言,运行在服务器。 如果有一定的编程基础,1小时之内看完so easy! 搭建PHP开发环境 PHP开发环境主要3部分:服务器Apache,编程语言PHP,数据库MySQL。搭建开发环境,直接使用XAMPP集成安装就可以。 XAMPP=Apache+MySQL+PHP+Perl,X表示的是跨平台。 官网下载安装即可:https://www.apachefriends.org/zh_cn/index.html (安装太简单了,没有什么可说的,不过如果以前安装过tomcat,apache,MySQL等,xampp...
- 下一篇
04 pandas DataFrame_创建、文件读取、编码
=== DataFrame 简介 === 定义:数据帧 (DataFrame) 是二维数据结构,即数据以行和列的表格方式排列。 特点: 1、 潜在的列是不同的类型 2、 大小可变 3、 标记轴是行和列 (行、列索引) 4、 可以对行和列进行算数运算 === 创建DataFrame === 将多个Series合并到一起,形成DataFrame 1、使用列表创建[] Tom_dict = {'语文':90,'数学':88,'英语':78} Jerry_dict = {'语文':89,'数学':73,'英语':92} Tom = pd.Series(Tom_dict,name='Tom的成绩') Jerry = pd.Series(Jerry_dict,name='Jerry的成绩') Tom.index.name='科目' Jerry.index.name='科目' # 用DataFrame合并Series # pd.DataFrame(data,index) # 如果Series表示的是一个人的一行数据,那么生成DataFrame的时候使用[] pd.DataFrame([Tom,Jer...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境