javascript函数内部的this对象

发布时间:2020-02-16编辑:脚本学堂
本文介绍下,有关javascript函数内部的this对象的用法,有需要的朋友参考下吧。

javascript函数体内部,有一个特殊对象是this,其行为与java和C#中的this大致类似。
也就是说,this引用的是函数已执行操作的对象——或者也可以说,this是函数在执行时所处的作用域

例子:
 

复制代码 代码示例:

window.color = "red";
var o = {
    color: "blue"
};

function sayColor() {
    alert(this.color);
}
sayColor(); //"red"
o.sayColor = sayColor;
o.sayColor(); //"blue"

说明:
以上这个函数sayColor()是在全局作用域中定义的,它引用了this对象。
由于在调用函数之前,this的值并不确定,一次this可能会在代码执行过程中引用不同的对象。
当在全局作用域中调用sayColor()时,this引用的全局对象window;换句话说,对this.color求值会转换成对window.color求值,于是结果就返回了“red”。
而当把这个函数赋给对象o并调用o.sayColor()时,this引用的是对象o,一次对this.color求值会转换成对o.color求值,结果就返回了“blue”。
函数的名字仅仅是一个包含指针的变量而已。因此,即使是在不同的环境中执行,全局的sayColor()函数与o.sayColor()指向的仍然是同一个函数。