JavaScript 中的 this 绝对不是容易理解的概念. 这里介绍两种常见的误解.
误解1. this 指向自身.
function foo(){
this.count++;
}
foo.count = 0;
我们期望count能够记录函数foo被调用的次数, 实际上这是行不通的, 因为 this 并不指向函数对象.
误解2. this 指向作用域
在看《你不知道的JavaScript》之前, 我居然一直是这么认为的. 实际上, 作用域并不是JavaScript对象, 自然也无法通过JS代码来访问作用域, 它仅存在JS引擎内部. 因此, this是无法指向作用域的.
那么 this 是什么呢?
this 其实是执行上下文的一个属性, 它究竟绑定哪个对象,是由四条规则决定的, 留着下文再写.
网友评论