JavaScript中的this

225 阅读1分钟

this

jacaScript的this总是指向一个对象,而具体指向哪个对象是在运行时基于函数的执行环境动态绑定的,而非函数被申明时的环境。

1.作为对象的方法被调用

当函数作为对象的方法被调用时,this指向该对象:

var obj = {
    a:1,
    getA:function(){
        alert(this === obj); //输出:true
        alert(this.a); //输出:1
    }
};
obj.getA();

2.作为普通函数调用

当函数不作为对象的属性被调用时,也就是我们常说的普通函数方式。此时的this总是指向全局对象。在浏览器的JavaScript里,这个全局对象是window对象。

window.name = 'globalName';
var getName = function(){
    return this.name;
}
console.log(getName()); //输出:globalName

3.构造器调用

JavaScript中没有类,但是可以从构造器中创建对象,同时也提供了new运算符,使得构造器看起来更像一个类。