JavaScript入门教程

JavaScript简介
JavaScript语法基础
JavaScript流程控制
JavaScript函数
面向对象编程
JavaScript事件
JavaScript DOM
正则表达式
JavaScript BOM
AJAX

专题分析

浏览器兼容性
JS优化
Web前端开发规范
编辑器推荐
总结和笔记

学习助手

对象参考手册
ECMAScript分析
数据中心
QQ交流群

JS this用法汇总

this 是 JavaScript 中的一个关键字,指向当前的对象,在不同的场合,this 有不同的含义。

全局环境中的this

在全局环境中,this 指向全局对象Global,即 window 对象。例如:
alert(this);  // 显示 [object Window]
alert(this === window);  // 显示 true

实例演示:

事件处理中的this

在事件处理函数中,this 指向当前节点,即绑定事件的节点。

在DOM元素中直接绑定事件,例如:
<input type="button" value="点击这里显示this" onclick="alert(this)" />
<!-- 显示 [object HTMLInputElement] -->

实例演示:


在JS代码中绑定事件处理函数,例如:
<input id="demo" type="button" value="点击这里显示this" />
<script type="text/javascript">
document.getElementById("demo").onclick = function(){
    alert(this);  // 显示 [object HTMLInputElement]
}
</script>

实例演示:

构造函数中的this

在构造函数中,this 指向被创建的对象。
var user = "xiaoming";
function ItXueyuan(user){
    this.name = "IT学院";
    this.domain = "www.itxueyuan.org";
    this.user = user;
    this.showUser = function(){
      alert(this.user);
    }
}
var zhangsan = new ItXueyuan("zhangsan");
zhangsan.showUser();  // 显示"zhangsan"

var wangming = new ItXueyuan("wangming");
wangming.showUser();  // 显示 wangming

注意,this 不能被赋值,下面的代码是错误的:
this = "itxueyuan";