欢迎来到展翼科技

详解 JavaScript 中的 this

作者:展翼科技         文章来源:展翼科技     发表时间:2013-10-29 09:06

其实如果完全掌握了this的工作原理,自然就不会走进这些坑。来看下以下这些情况中的this分别会指向什么:

1.全局代码中的this

 

1
alert(x);// 全局变量x值为2

 

全局范围内的this将会指向全局对象,在浏览器中即使window。

2.作为单纯的函数调用

 

1
2
3
4
5
function fooCoder(x) {
this.x = x;
}
fooCoder(2);
alert(x);// 全局变量x值为2

 

这里this指向了全局对象,即window。在严格模式中,则是undefined。

3.作为对象的方法调用

 

1
2
3
4
5
6
7
8
var name = "clever coder";
var person = {
name : "foocoder",
hello : function(sth){
console.log(this.name + " says " + sth);
}
}
person.hello("hello world");

 

输出 foocoder says hello world。this指向person对象,即当前对象。

4.作为构造函数

 

1
new FooCoder();