this的四种用法
函数运行时,自动生成的一个内部对象,只能在函数内部使用
随着函数使用场合的不同,this的值也发生着改变,但是有一个总原则:this指的是调用函数的那个对象(核心)
1、纯粹的函数调用
this指的是全局对象globa
ex:
var x = 2;
function test(){ var x = 1; function error(){ alert(this.x); } return error; } test();
2 作为对象的方法调用
ex:
var x = 3; var demo = { x:1, error : function () { var x = 2; function ss(){ alert(this.x); } return ss; } };
demo.error()();
3、作为构造函数调用
function test(){ this.x = 1; } var o = new test(); var x = 2;
alert(o.x);
4,call()和apply()时
ex:
var x = 3; var o = { x:1 }; var v = { x:2, test:function () { return this.x; } }; alert(v.test());
alert(v.test.call()); alert(v.test.call(o));