关于Javascript范围解析

Ave*_*Joe 3 javascript scope this

在控制台上,当您输入时

blahblah然后点击进入,你有望得到Unrecognized ReferenceError.

但...

当你输入时this.blahblah,你得到undefined(意味着没有错误)

这是为什么?

什么时候blahblah在内存中为自己找到一个空间来undefined分配特殊值()?- 看起来,当我这样做时this.blahblah,它具有var blahblah;即时执行的效果.

任何意见?

Tim*_*san 6

如果this.blahblah您指的是对象的属性this(window在您的情况下).

在JavaScript中,当您尝试获取对象的非现有属性时,它将返回一个undefined类型.

然而,在第一种情况下,简单地调用blahblah,您正在尝试使用被调用的引用调用对象blahblah.如果那不存在,JavaScript会抛出一个ReferenceError代替.

JavaScript有很多方法告诉你某些东西不存在.