专注于WEB前端开发,HTML基础知识,CSS基础知识,HTML5和CSS3,Javascript,Jquery,Jquery插件,移动开发,微信开发等技术话题

当前位置:CSSTOP主页 > JS函数 > 正文

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 上的一个函数,详细描述在第四章。