你不知道的JavaScript--作用域

                                                          用简单的代码 展示代码的魅力

1.在浏览器里,在全局范围内,this等价于window对象。

<script type="text/javascript">
    console.log(this === window); //true
</script>

2.在浏览器里,在全局范围内,用var声明一个变量和给this或者window添加属性是等价的。

<script type="text/javascript">
var foo = "bar";
console.log(this.foo); //logs "bar"4     
console.log(window.foo); //logs "bar"5 
</script>

3.如果你在声明一个变量的时候没有使用var或者let(ECMAScript 6),你就是在给全局的this添加或者改变属性值。

<script type="text/javascript">
foo = "bar";
function testThis() {
foo = "foo";
}
console.log(this.foo); //logs "bar"
testThis();
console.log(this.foo); //logs "foo"11 
</script>

 

posted @ 2019-05-09 09:33  小飞fei  阅读(7)  评论(0)    收藏  举报