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#项目中关于多个程序集下App.config文件的问题
  2. Fiddler抓包使用教程-会话图标
  3. 顺丰快递单号的规律_顺丰快递单号查询跟踪(单号码查询)
  4. PyQt5 笔记7 -- 多个类共享信号
  5. matlab编程ode45,matlab 中ode45的源代码如何看懂
  6. 常见窗函数的C语言实现及其形状,适用于单片机、DSP作FFT运算
  7. java xml textview居中_android—图文垂直居中 TextView+SpannableString
  8. 再见,Eclipse
  9. js的数组和对象的多种复制和清空, 以及区分JS数组和对象的方法
  10. ARTS打卡计划第一周-Tips-ControllerAdvice的使用
  11. 读书笔记:《稻盛和夫 阿米巴经营 人人都是经营的主角》
  12. LFW人脸数据库的简介
  13. 《统计学》第八版贾俊平第八章假设检验知识点总结及课后习题答案
  14. 产品经理职场面试35个经典问题
  15. 随机预言机模型 Random Oracle Model
  16. 不是你不懂黑盒攻击,而是你还不懂SurFree
  17. 执行引擎的工作过程、Java代码编译和执行的过程、解释器、JIT编译器
  18. Docker Pull非常缓慢(使用阿里云镜像加速器)
  19. 解决Visual C++ Redistributable安装找不到vc_runtimeMinimum_x86.msi最简单办法
  20. 微信openid 服务器备案,微信生态中的 openId、unionID和业务系统中的ID

热门文章

  1. 记一次华为服务器装centos6.8系统
  2. 【汇正财经】什么是高位十字星的反技术操作?
  3. 2022“望友杯”第二届全国电子制造行业 PCBA 设计大赛-华南分赛区火热报名中~
  4. java基本编程结构
  5. ANDROID星座程序设计
  6. C++中延时的几种使用方式
  7. js获取字符长度并计算px宽度
  8. 奥地利博士联培申请签证经验(奥地利签证)
  9. 加速数字化转型的2大原因是什么?
  10. centOS yum安装失败Error downloading packages