在js中this始终指向一个调用函数的那个对象
var a='有种你干掉我啊';
//纯粹调用函数
function test(){
console.log(this.a);//默认指向全局对象
}
//test();//=>windows.test()
//作为对象的方法被调用
Function.prototype.log=function(){
console.log(this.a);
}
//此时t为一个函数对象,注意js中一切皆为对象,函数是特殊的对象,具有prototype而已
//t函数继承了Function.prototype原型的方法用有log方法
//this指向原理,始终指向一个调用函数的对象,此时log()中的指向this对象
t.log();//=>function t(){}
function t(){}
var tt={a:1000};
tt.log=t.log;
tt.log();//1000
//作为构造函数调用
function obj(){
this.a=99;
}
var mm=new obj();
console.log(mm.a);
//作为函数的apply方法调用,传入的第一个参数代表这个方法函数的调用对象
mm.log=test;
mm.log.apply();