this关键字
本意:这个、这里的意思.
在JavaScript中是指每一个方法或函数都会有一个this对象,this对象是方法(或函数)在执行时的那个环境,也可以说是这个函数在那个作用域下运行的
一共有四种调用模式:方法调用模式(对象属性模式)、函数调用模式(就是普通的函数执行)、构造调用模式(应该叫实例上的方法模式更好)和apply调用模式。
一、方法调用模式
当它为一个对象上的方法的时候,this是当前这个对象
function age() { alert(this); } var person = new Object(); person.age = age;
这里的this指向的就是创建的这个person对象
二、函数调用模式
当函数并非一个对象的属性时,那么它被当做一个函数来调用。此模式下this绑定到全局对象
var a = 1; function fn() { console.log( this.a ); } fn(); // 1
fn函数中的this指定的是全局对象,全局对象是window
三、构造函数调用模式
在构造函数里的this是指向这个对象
function Person( age ) { this.age = age; } var person = new Person(15); console.log(person.age); // 15
四、apply调用模式
apply是把一个函数当成另一个对象的方法来调用(把age函数当做Person对象的方法来调用)
function age() { console.log(this.age); } function Person() { this.age = 18; } var person = new Person(); age.apply(person); // 18
转载:http://blog.csdn.net/itpinpai/article/details/51004266