JavaScript关键字this指向

在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();

posted @ 2016-09-07 10:51  nobugnobb  阅读(116)  评论(0编辑  收藏  举报