目录

一、前言

二、方法中的this

三、单独使用this

四、函数中使用this

五、事件中的this

六、对象方法中绑定

七、显示函数绑定


一、前言

在面向对象的语言中this表示当前对象的一个引用。

但是在JavaScript中this不是固定不变的,它回随着指定环境的改变而改变。

  • 在方法中,this表示该方法所属的对象。
  • 如果单独使用,this表示全局对象。
  • 在函数中,this表示全局对象。
  • 在函数中,在严格模式下,this是未定义的。
  • 在事件中,this表示接受事件的元素。
  • 类似call()和apply()方法可以将this引用到任何对象。

二、方法中的this

在对象方法中,this指向调用它所在方法的对象。fullName方法所属的对象就是person。

fullName : function() {return this.firstName + " " + this.lastName;
}

三、单独使用this

单独使用this,则它指向全局对象,在浏览器中就是window。在严格模式下,如果单独使用,this也是指向全局。

var x = this;

四、函数中使用this

函数中,函数的所属这默认绑定到this上。在浏览器中,window为全局对象,而在vue中由于是单页应用,this指向当前页面。但是在严格模式下。函数是没有绑定到this上的,这时候this就是未定义的。

五、事件中的this

在HTML事件句柄中,this指向了接收事件的HTML元素。

<button onclick="this.style.display='none'">
点击消失
</button>

六、对象方法中绑定

下面实例中,this是person对象,person对象是函数的所有者。this.firstName表示this(person)对象的firstName属性。

var person = {firstName: "John",lastName : "Doe",id       : 5566,fullName : function() {return this.firstName + " " + this.lastName;}
};

七、显示函数绑定

在JavaScript中函数也是对象,对象则有方法,apply和call就是函数对象的方法。者两个方法异常强大,他们允许切换函数执行的上下文环境,即this绑定的对象。

在下面实例中,当我们使用person2作为参数来调用person1.fullName方法时,this将指向person2,即便它是person1的方法:

var person1 = {fullName: function() {return this.firstName + " " + this.lastName;}
}
var person2 = {firstName:"John",lastName: "Doe",
}
person1.fullName.call(person2);  // 返回 "John Doe"

JavaScript——this关键字相关推荐

  1. php 上万关键字匹配,JavaScript 上万关键字瞬间匹配实现代码

    JavaScript 上万关键字瞬间匹配实现代码 更新时间:2013年07月07日 23:36:21   作者: 发一篇之前写的文章,平时还是经常用到的,尤其是河蟹词特别多的聊天系统里 提到关键字搜索 ...

  2. Javascript this关键字 指向详解

    Javascript this关键字 指向详解 面向对象语言中 this 表示当前对象的一个引用.在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变. 1) 单独使用 ...

  3. JavaScript保留关键字及危险变量名

    JavaScript保留关键字及危险变量名 定义变量名需谨慎 在开发过程当中,如果没有必要就尽可能少的使用以下列出的单词作为变量名称或者属性名称,关键字是严格不允许,而浏览器定义的变量名或者类名在使用 ...

  4. javascript的关键字

    Javascript关键字(Reserved Words)是指在Javascript语言中有特定含义,成为Javascript语法中一部分的那些字.Javascript关键字是不能作为变量名和函数名使 ...

  5. javascript查找关键字高亮效果

    全文查找高亮(非正则法) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  6. JS总结--------JavaScript常用关键字

    1.前言 初期发现自己只能写出一些总结性质的文章,这篇主要是为了总结JS中的关键字. 我本身是后端开发,对应JavaScript相对而言学的更快. 虽然JavaScript(以下简称JS)前面冠以了J ...

  7. JavaScript的关键字详解

    1. abstract--抽象的 2. continue--用于跳过循环中的一个迭代,并继续执行循环中的下一个迭代 3. finally--在 try 和 catch 之后无论有无异常都会执行. 4. ...

  8. javascript一些关键字的解释

    1.document.write(""); 输出语句  2.JS中的注释为//  3.传统的HTML文档顺序是:document->html->(head,body)  ...

  9. JavaScript super关键字

    When we work with classes in JavaScript, it's common to use the super keyword. 当我们使用JavaScript处理类时,通 ...

  10. javascript this 关键字学习

    面向对象语言中 this 表示当前对象的一个引用. 在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变,     在方法中,this 表示该方法所属的对象:     ...

最新文章

  1. Android CountDownTimer倒计时器的使用
  2. mysql存储过程写法—动态参数运用
  3. # iOS 一窥并发编程底层(一)
  4. CSS3中的3D变换与简易立方体的制作
  5. 案例解读:Oracle目录由于TFA触发bug导致jdb文件未自动清理引起空间不足
  6. java对list里面按照分数排名_提前批警校排名,部属警校去省厅,省级警校去乡镇吗...
  7. ApacheCN Pandas 教程集
  8. 原生 JS 撸一个轮播图(支持拖拽切屏)
  9. android 美拍加表情,怎么把美拍加表情
  10. BearPi-IoT串口收发1-普通模式
  11. 蓝桥杯第十二届省赛JAVA C组 试题 F: 时间显示
  12. 5G学习笔记之RRC_IDLE/RRC_INACTIVE态UE功能概述
  13. 阿里云开发者大会观后感
  14. 电商app用户行为分析(含全过程python代码)
  15. 【树形DP+DFS】Gym 100962J - Jimi Hendrix
  16. 极限编程:价值观、原则和实践
  17. serenity+jbehave
  18. iOS-class方法和objc_getClass方法
  19. .Net中Web增加加密狗管理
  20. CentOS 6.5 安装使用iscsi-initiator

热门文章

  1. ipmDraw——化学结构编辑器
  2. gif透明背景动画_制作一个绘图GIF动画
  3. ps笔刷:肮脏污渍photoshop笔刷集
  4. 解决笔记本电脑突然搜不到可用网络
  5. 2020年 面向高级开发人员的 iOS面试问题
  6. 对外经贸的计算机研究生怎么样,对外经济贸易大学怎么样是几本?211还是985?就业薪水高吗值得上吗...
  7. 实验7 利用Wireshark软件分析TCP
  8. IDK(自己瞎想的一种共识算法)
  9. 24强打响收官之战,2021“医·智汇”大赛全国总决赛圆满落幕
  10. 跟庄买股票得新技巧(第三弹)集合竞价战法