JavaScript之深入this
1. Reference
Reference是一个特殊类型,只存于规范里的抽象类型。它们是为了更好地描述语言的底层行为逻辑才存在的,但并不存在于实际的js代码中。
Reference有三个属性:
- base
- name
- strict
有一个从Reference类型获取对应值的方法:GetValue。
1 | var foo = 1; |
2. 如何确定this的值
如果表达式返回的不是Reference类型,this值为undefined,非严格模式下为window(全局对象)。
如果表达式返回的是Reference类型,那么this值为表达式所代表的作用域。