JavaScript中的this关键字是一个难以琢磨的概念,是一个依赖于它的执行环境而被解析的关键字。简单说就是谁调用这个方法,方法里的this就是谁.

1,在JS文件中直接alert(this);this代表的是window,当前的执行环境是在JS的顶层域里面。

2,下面这个例子中this指向的是调用该方法的对象,button标签。

<script type="text/javascript">function test() {alert(this.value);this.style.color = "red";}
</script></head>
<body><input type="button"  id="ipt" value="test this"><script type="text/javascript">document.getElementById("ipt").onclick = test;</script>
</body>
</html>

上面的例子等价于下面的例子,document.getElementById("ipt").onclick相对于把test函数变成了id为 ipt元素的一个函数属性了,从而让this指向了id为 ipt元素。但是如果写成<input type="button"  id="ipt" οnclick="test()" value="test this">这样的方式调用test方法,this却是指向了window。(不明白?直接指定的话没有JS环境绑定?)

<script type="text/javascript">function test() {alert(this.value);this.style.color = "red";}
</script></head>
<body><input type="button"  id="ipt" value="test this"><script type="text/javascript">var button = document.getElementById("ipt");test.call(button);</script>
</body>
</html>

3,在一个函数中,this代表这个函数的执行环境

function Test(){alert(this);
}Test();//outputs windowvar obj = new Test(); // outputs object

Test()是在window域里执行的,其等价于window.Test();
var obj = new Test(); 其相当于 obj.Test();

JS的this关键字相关推荐

  1. JS中this关键字

    JS中this关键字 this是javascript的一个关键字,随着函数使用场合不同,this的值会发生变化.但是总有一个原则,那就是this指的是调用函数的那个对象. 1.全局代码中的this a ...

  2. js根据数据关键字实现模糊查询功能

    js根据数据关键字实现模糊查询功能 模糊查询 实现模糊查询功能的步骤和一般方法 第一步:创建假数据或请求接口数据 第二步:分析数据格式,处理数据 第三步:验证功能 完整代码 模糊查询 模糊查询功能是指 ...

  3. JS中this关键字详解

    本文主要解释在JS里面this关键字的指向问题(在浏览器环境下). 阅读此文章,还需要心平气和的阅读完,相信一定会有所收获,我也会不定期的发布,分享一些文章,共同学习 首先,必须搞清楚在JS里面,函数 ...

  4. 深入理解JS中this关键字

    为什么要使用this关键字 看个例子 function indetify() {retun this.name.toUpperCase()}var obj = {name: 'zz'}indetify ...

  5. JS 基础 —— JavaScript 关键字(keyword)与保留字

    转载于: JavaScript 关键字(keyword)与保留字 一.JavaScript 所有关键字: break case catch continue default delete do els ...

  6. js中的关键字总结呢

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

  7. js中的关键字和保留字

    前两天面试官问了我一道题:你知道js有哪些保留字吗? 当时自己就说了abstract,try,catch,this,其中最重要的就是this这个关键字了. 然后面试官问,你说的this是关键字,我问的 ...

  8. JS标识符、关键字、保留字

    1.标识符 标识符:是指开发人员为变量.属性.函数.参数取的名字. 标识符不能是关键字和保留字 2.关键字 是指JS本身已经使用了的字 , 不能在用他们充当变量名.方法名 包括:break . cas ...

  9. new 实例化对象是啥意思_前端经典面试题解密:JS的new关键字都干了什么?

    写在前面: new关键字在实例化获取对象时都做了什么?是一道经常出现在前端面试时的问题.如果只是简单的了解new关键字是实例化构造函数获取对象,是万万不能够的.更深入的层级发生了什么呢?同时面试官想从 ...

最新文章

  1. [转]C++基础:C++的结构struct
  2. ISO9000管理体系认证申请书
  3. 如何使用APTonCD备份和还原已安装的Ubuntu软件包
  4. php 下拉表单,PHP表单和填充下拉列表问题
  5. Spring4:具有Java 8 Date-Time API的@DateTimeFormat
  6. TiDB集群大规模删除实践
  7. 天猫精灵可以当电脑音响吗_阿里投百亿砸天猫精灵,马云的物联网野心能靠智能音箱撑起来吗?...
  8. Sysbench 性能压测-MySQL
  9. 八皇后(N皇后)问题
  10. iis绑定php程序应用池设定,什么是IIS应用程序池以及应用程序池详解
  11. 《MFC游戏开发》笔记五 定时器和简单动画
  12. Jquery 判断IE
  13. 【真题21套】计算机二级公共基础知识选择题真题【含解析】
  14. var模型可以用spss做吗_VAR模型一般几个变量
  15. android记账系统预算功能,怎么挑选合适的 Android 记账应用?你可以从记账需求入手...
  16. 【python】利用脚本抓取steam限时免费游戏
  17. 点阵字库怎样才能做到字符显示更紧凑?
  18. Transformer结构的初步探索
  19. 洛谷P1551亲戚题解
  20. C++骰子游戏课程设计(含源码)

热门文章

  1. SVN各种异常解决整理
  2. 深入理解JVM—满足什么条件的对象才会进入老年代?
  3. 学习kotlin的一些笔录7
  4. android webview访问本地文件
  5. asp毕业设计——基于ASP+IIS+sqlserver的房屋租售信息管理系统设计与实现(毕业论文+程序源码)——房屋租售信息管理系统
  6. Removing the Bias of Integral Pose Regression 阅读笔记
  7. 移动机器人算法python实例 -- 开源项目推介
  8. IT小张:一台交换机和“隐秘的角落”不得不说的关系
  9. vue项目将多张图片生成一个gif动图
  10. 【问题记录】警告:DownloadWarning: Downloading: https://naciscdn.org/naturalearth/110m/physical/ne_110m_land.