用简单的代码 展示代码的魅力
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>