JavaScript入门教程

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

专题分析

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

学习助手

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

JS this指针

JavaScript 中最容易使人迷惑的恐怕就数 this 指针了,this 指针在传统 OO 语言中,是在类中声明的,表示对象本身,而在 JavaScript 中,this 表示当前上下文,即调用者的引用。这里我们可以来看一个常见的例子:
//定义一个人,名字为jack
var jack = {
    name : "jack",
    age : 26
}
//定义另一个人,名字为abruzzi
var abruzzi = {
    name : "abruzzi",
    age : 26
}
//定义一个全局的函数对象
function printName(){
    return this.name;
}
//设置printName的上下文为jack, 此时的this为jack
print(printName.call(jack));
//设置printName的上下文为abruzzi,此时的this为abruzzi
print(printName.call(abruzzi));

运行结果:
jack
Abruzzi

应该注意的是,this 的值并非函数如何被声明而确定,而是被函数如何被调用而确定,这一点与传统的面向对象语言截然不同,call 是 Function 上的一个函数,详细描述在第四章。