变量不同作用域的测试

痴心易碎 提交于 2019-11-29 16:01:40

source code:

<html>
<script>
var x = 10;
foo={
 x:20,
 bar: function() {
     var x = 30;
     return this.x;
  }
}
console.log(
   foo.bar(),
   (foo.bar)(),
   (foo.bar = foo.bar)(),
   (foo.bar, foo.bar)()
); // 20 20 10 10
</script>
</html>

第一个foo.bar(): 进入函数体执行时this 指向foo对象,因此this.x为20


第二种写法实际等价于第一种:


第三次执行this指向全局变量Window:


第四次的逗号表达式等价于第三次执行:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!