this是Javascript语言的一个关键字。 它表明函数运行时,自动生成的一个内部对象,只能在函数内部使用。 函数在不一样的执行环境中this的值也跟着不一样。 分一下四种javascript
当函数做为对象的方法调用时,this指向该对象java
var num1=0; var obj={}; obj.num1=1; obj.func=function(){ return this.num1; } alert(obj.func());//1
当函数直接调用时,this指向全局对象window。数组
var num1=0; var func=function(){ return this.num1; } alert(func())//0
当函数内部的函数用普通调用方式调用时,this仍指向全局对象window。app
var num1=0 var obj={}; obj.num1=1; obj.func1=function(){ var num1=2; var that=this; var func2=function(){ alert(this.num1);//0 alert(that.num1);//1 alert(num1);//2 } func2(); } obj.func1();
当使用new方式调用函数时,this指向新建立的对象。函数
function Person(name){ this.name=name; } var person=new Person("向晚"); alert(person.name)//向晚
apply()接收两个参数,第一个是将被绑定到this的值,第二个是参数数组this
var num1=0; var func1=function(){ alert(this.num1); } var obj={num1:1}; func1();//0 func1.apply(obj);//1