老生常谈JavaScript中的this关键字

前端之家收集整理的这篇文章主要介绍了老生常谈JavaScript中的this关键字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_4030@相对于很多其他的面向对象语言来说,this代表的就是当前对象。例如Java中的this就是编译期间确定的。而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的


@H
4030@

Java中的this


@H
403_0@在以下代码中。this代表的就是p对象。


<div class="jb51code">
<pre class="brush:js;">
public class Test {
public static void main(String[] args) {
Person p = new Person("zmt",30);
System.out.println(p.name);
}
}
class Person{
String name;
int age;
Person(String name,int age){
this.name = name;
this.age = age;
}
}

@H_403_0@

JavaScript中的this

@H_403_0@JavaScript 中的 this 含义要丰富得多,它可以是全局对象、当前对象或者任意对象,这完全取决于函数调用方式。JavaScript 中函数调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用 apply 或 call 调用。下面我们将按照调用方式的不同,分别讨论 this 的含义。

@H_403_0@

1.作为普通函数调用

@H_403_0@在普通函数里,this代表的是window对象

@H_403_0@

2.作为构造函数调用

@H_403_0@作用构造函数调用的时候,它代表的是当前对象。这个就和Java一样了。

@H_403_0@以上所述是小编给大家介绍的JavaScript中的this关键字,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

猜你在找的JavaScript相关文章