深入浅出分析javaScript中this用法

前端之家收集整理的这篇文章主要介绍了深入浅出分析javaScript中this用法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了javaScript中this用法分享给大家供大家参考。具体分析如下:

之前学javascript的时候总搞不清this,这个this不像java里的this那么好理解。我后来也是看了许多别人写的文章,才理解过来的。现在把别人写的东西搬过来,怕以后忘记。

总得来说 this的指向分三种。指向全局window,该对象,构造函数

结论:在Javascript中,this指向函数执行时的当前对象。 简单点说就是调用方法属于哪个对象,this就指向那个对象。

1. 全局window

简单代码

因为调用方法printMessage是属于window的,所以输出结果为:

true this in window

现在如果将代码改复杂点

此时printMessage方法是属于window的,所以他的this还是指向window。obj.printMessage 方法是属于obj对象的,看看下面的分析。

所以输出结果还是为:true this in window

2. 该对象

现在看看该对象的,稍微改一下代码

结果:

false this in obj

对的,你想的没错,还是上一步的结论,obj.printMessage 方法是属于obj对象的,所以this是指向obj的。

好的再呕心点,看代码:

最终调用的是 obj2.printMessage(),所以执行到this的时候,那个this是obj2

结果:

false,this in obj2

哈哈,是不是和你想的一样,谁调用的,就指向谁。

3. 构造函数