JavaScript this 关键词
this是什么呢?
JavaScript this 关键词指的是它所属的对象。
它拥有不同的值,具体取决于它所使用的位置:
- 在方法中,this 指的是所有者对象。
- 单独的情况下,this 指的是全局对象。
- 在函数中,严格模式下,this 是undefined。
- 在事件中,this 指的是接受时间的元素。
方法中的this
在对象方法中,this 指的是此方法的”拥有者“
1 var person = {
2 firstName: "Bill",
3 lastName : "Gates",
4 id : 678,
5 fullName : function() {
6 return this.firstName + " " + this.lastName; //返回 Bill Gates
7 }
8 };
上面的 this 指的就是person 对象。
因为person 对象是fullName 方法的拥有者。
单独的this
在单独使用时,拥有者是全局对象,因此 this 指的是全局对象。
在浏览器窗口中,全局对象是 [object Window]
var x = this; //[object Window]
在严格模式中,如果单独使用,那么 this 指的是全局对象 [object Window]
"use strict";
var x = this; //[object Window]
函数中的 this (默认)
在JavaScript 函数中,函数的拥有者默认绑定 this 。意思就是如果这个函数不在任何一个对象中,单独存在话,那么其拥有者就是浏览器啦,那么其内如果用到了 this 这个 this 指的就是 [objiect Window]
function myFunction() {
return this;
}
函数中的 this (严格模式)
JavaScript 严格模式不允许默认绑定。(至于什么是严格模式,可以参考W3school 专题 严格模式讲解)
在函数中使用时,在严格模式下, this 是未定义的 (undefined)。
"use strict";
function myFunction() {
return this; //undefined
}
事件处理程序中的 this
在 HTML 事件处理程序中, this 指的是接受此事件的 HTML 元素
<button onclick="this.style.display='none'">
点击来删除我!
</button>
上面的 this 指的就是其所在的 button 元素
对象方法绑定
var person = {
firstName : "Bill",
lastName : "Gates",
id : 678,
myFunction : function() {
return this; //[object Object]
}
上面中的 this 会自动绑定 person 这个对象,也就是说 this 是 person 对象 (person 对象是该函数的"拥有者")
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName; //Bill Gates
}
上面的, this.firstName 意味着 this (person)对象的firstName 属性,相当于 person.firstName.
以上内容均在W3school 的 JS this 专题有讲解,参考地址:https://www.w3school.com.cn/js/js_this.asp
JavaScript this 关键词的更多相关文章
- 松软科技Web课堂:JavaScript this 关键词
实例 var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : fu ...
- JavaScript new 关键词解析及原生实现 new
java里面,new 运算符是用来实例化一个类,从而在内存中分配一个实例对象. 但在 javascript 中,原型语言没类,只有对象与原型链继承 JavaScript 中 new 表达式的作用是生成 ...
- 【前端安全】JavaScript防http劫持与XSS
作为前端,一直以来都知道HTTP劫持与XSS跨站脚本(Cross-site scripting).CSRF跨站请求伪造(Cross-site request forgery).但是一直都没有深入研究过 ...
- javascript引擎工作原理
1. 什么是JavaScript解析引擎? 简单地说,JavaScript解析引擎就是能够“读懂”JavaScript代码,并准确地给出代码运行结果的一段程序.比方说,当你写了 var a = 1 + ...
- 我们应该如何去了解JavaScript引擎的工作原理
“读了你的几篇关于JS(变量对象.作用域.上下文.执行代码)的文章,我个人觉得有点抽象,难以深刻理解.我想请教下通过什么途径能够深入点的了解javascript解析引擎在执行代码前后是怎么工作的,ec ...
- 【转】我们应该如何去了解JavaScript引擎的工作原理
原文地址:http://www.nowamagic.net/librarys/veda/detail/1579 昨天收到一封来自深圳的一位前端童鞋的邮件,邮件内容如下(很抱歉,未经过他的允许,公开邮件 ...
- JavaScript运行原理解析
原文:1.http://blog.csdn.net/liaodehong/article/details/50488098 2.Stack的三种含义 (阮一峰) 3. http://lib.csdn. ...
- 前端开发【第3篇:JavaScript序】
JavaScript历史 聊聊JavaScript的诞生 JavaScirpt鼻祖:Bremdan Eich(布兰登·艾奇),JavaScript的诞生于浏览器的鼻祖网景公司(Netscape),发布 ...
- javascript 数据类型 -- 分类
一.概念 Javascript 中有6中基本类型(也称 原始类型/原始值): number . sring . boolean . symbol . undefined 和 null ,和1种引用类型 ...
随机推荐
- 脚本:Tomcat日志切割
Tomcat日志切割脚本 #!/bin/bash #Tomcat日志切割 Tomcat_logs_path=/data/server/tomcat-8080/logs d=`date +%F` d7= ...
- Java-接口的本质
https://mp.weixin.qq.com/s/tEVw0j18rX2hxt-guXQJ-w 大道至简,本质往往是很朴素的. 本质: 类是主体,接口是主体之间交流沟通的规约. 位置:1. 主体站 ...
- jchdl - GSL实例 - Mux4(使用Mux)
https://mp.weixin.qq.com/s/GrYJ4KXEFRoLLmLnAGoMSA 原理图 参考链接 https://github.com/wjcdx/jchdl/blob/ma ...
- Chisel3 - model - 子模块,顶层模块
https://mp.weixin.qq.com/s/3uUIHW8DmisYARYmNzUZeg 介绍如何构建由模块组成的硬件模型. 1. 子模块 一个模块可以有一个或多个子模块,创建子 ...
- Java实现 蓝桥杯VIP 算法训练 最大值与最小值的计算
输入11个整数,计算它们的最大值和最小值. 样例输入 0 1 2 3 4 5 6 7 8 9 10 样例输出 10 0 import java.util.Scanner; public class 最 ...
- Java实现 蓝桥杯VIP 算法训练 Hanoi问题
问题描述 如果将课本上的Hanoi塔问题稍做修改:仍然是给定N只盘子,3根柱子,但是允许每次最多移动相邻的M只盘子(当然移动盘子的数目也可以小于M),最少需要多少次? 例如N=5,M=2时,可以分别将 ...
- Java实现 蓝桥杯 图书排列(全排列)
标题:图书排列 将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置. 请计算一共有多少种不同的排列方案. 注意,需要提交的是一个整数,不要填写任何多余的内容. 9 9 10 9 ...
- Java实现 蓝桥杯 历届试题 矩阵翻硬币
问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬币进行 Q 操作的定义:将所有第 ix 行,第 jy 列的硬币进行翻转. 其 ...
- java实现第六届蓝桥杯四阶幻方
四阶幻方 把1~16的数字填入4x4的方格中,使得行.列以 及两个对角线的和都相等,满足这样的特征时称 为:四阶幻方. 四阶幻方可能有很多方案.如果固定左上角为1 ,请计算一共有多少种方案. 比如: ...
- Python之Flask框架二
今天接着上一篇继续写一篇关于flask的随笔. 本文大纲: 1.获取请求参数 2.一个函数处理多个请求方式 3.重定向 4.错误响应 5.全局错误处理 6.返回json格式数据 7.自定义返回内容状态 ...