JS的this关键字
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关键字相关推荐
- JS中this关键字
JS中this关键字 this是javascript的一个关键字,随着函数使用场合不同,this的值会发生变化.但是总有一个原则,那就是this指的是调用函数的那个对象. 1.全局代码中的this a ...
- js根据数据关键字实现模糊查询功能
js根据数据关键字实现模糊查询功能 模糊查询 实现模糊查询功能的步骤和一般方法 第一步:创建假数据或请求接口数据 第二步:分析数据格式,处理数据 第三步:验证功能 完整代码 模糊查询 模糊查询功能是指 ...
- JS中this关键字详解
本文主要解释在JS里面this关键字的指向问题(在浏览器环境下). 阅读此文章,还需要心平气和的阅读完,相信一定会有所收获,我也会不定期的发布,分享一些文章,共同学习 首先,必须搞清楚在JS里面,函数 ...
- 深入理解JS中this关键字
为什么要使用this关键字 看个例子 function indetify() {retun this.name.toUpperCase()}var obj = {name: 'zz'}indetify ...
- JS 基础 —— JavaScript 关键字(keyword)与保留字
转载于: JavaScript 关键字(keyword)与保留字 一.JavaScript 所有关键字: break case catch continue default delete do els ...
- js中的关键字总结呢
1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4. ...
- js中的关键字和保留字
前两天面试官问了我一道题:你知道js有哪些保留字吗? 当时自己就说了abstract,try,catch,this,其中最重要的就是this这个关键字了. 然后面试官问,你说的this是关键字,我问的 ...
- JS标识符、关键字、保留字
1.标识符 标识符:是指开发人员为变量.属性.函数.参数取的名字. 标识符不能是关键字和保留字 2.关键字 是指JS本身已经使用了的字 , 不能在用他们充当变量名.方法名 包括:break . cas ...
- new 实例化对象是啥意思_前端经典面试题解密:JS的new关键字都干了什么?
写在前面: new关键字在实例化获取对象时都做了什么?是一道经常出现在前端面试时的问题.如果只是简单的了解new关键字是实例化构造函数获取对象,是万万不能够的.更深入的层级发生了什么呢?同时面试官想从 ...
最新文章
- C#项目中关于多个程序集下App.config文件的问题
- Fiddler抓包使用教程-会话图标
- 顺丰快递单号的规律_顺丰快递单号查询跟踪(单号码查询)
- PyQt5 笔记7 -- 多个类共享信号
- matlab编程ode45,matlab 中ode45的源代码如何看懂
- 常见窗函数的C语言实现及其形状,适用于单片机、DSP作FFT运算
- java xml textview居中_android—图文垂直居中 TextView+SpannableString
- 再见,Eclipse
- js的数组和对象的多种复制和清空, 以及区分JS数组和对象的方法
- ARTS打卡计划第一周-Tips-ControllerAdvice的使用
- 读书笔记:《稻盛和夫 阿米巴经营 人人都是经营的主角》
- LFW人脸数据库的简介
- 《统计学》第八版贾俊平第八章假设检验知识点总结及课后习题答案
- 产品经理职场面试35个经典问题
- 随机预言机模型 Random Oracle Model
- 不是你不懂黑盒攻击,而是你还不懂SurFree
- 执行引擎的工作过程、Java代码编译和执行的过程、解释器、JIT编译器
- Docker Pull非常缓慢(使用阿里云镜像加速器)
- 解决Visual C++ Redistributable安装找不到vc_runtimeMinimum_x86.msi最简单办法
- 微信openid 服务器备案,微信生态中的 openId、unionID和业务系统中的ID