JS中this用法详解

来源:互联网 发布:剑三捏脸数据萝莉人气 编辑:程序博客网 时间:2024/06/10 20:30

摘自:http://www.leixuesong.cn/2530
this是JS语言的一个关键字,只能在函数中运行。this可以指向当前代码运行对象本身或者是全局对象。也可以通过apply()方法改变函数的调用对象。下面PHP程序员雷雪松详细的讲解下JS中this的用法。

1、在函数中,this就代表全局对象Global。

var x = 9;function test(){console.log(this.x);}test();//this指向全局对象

2、在对象的函数中,this指向对象本身。

var obj={};obj.x = 10;obj.func = function(){console.log(this.x);}obj.func ();//对象obj,输出10console.log(obj);

3、在构造函数生成对象时,this指向新对象。

var x = 2;function test(){this.x = 1;}var obj = new test();console.log(obj.x);//对象obj,输出1console.log(x);//2

4、apply函数的用法,可以传对象名,也可以不传。不传的时候指向全局对象。

var x = 0;var otherObj = {x:10};function test(){console.log(this.x);}var obj={};obj.x = 1;obj.func = test;obj.func ();//对象o,输出1obj.func .apply(); //全局,输出0obj.func .apply(otherObj); //对象otherObj,输出10

最后,总结下JS中this用法,如果在函数中运行,就指向全局对象,在对象中,就指向当前对象本身。