var x = "haha"; var test = function(){ alert(this.x); } 上述,则会弹出 haha的值. 因为在JavaScript的变量作用域里有一条规则“全局变量都是window对象的属性”. 所以当执行test();方法时,相当于执行window.test(); 所以test方法中的this相当于指向了window对象,而window对象又有x变量. 即:this所在的函数是当作哪个方法的对象所调用的,即该对象就是this所引用的对象. 参
双重角色 BOM的核心对象是window,它表示浏览器的一个实例.在浏览器中,window对象有双重角色,它既是通过Javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象.这意味着在网页中定义的任何一个对象.变量和函数,都以window作为其Global对象. 全局作用域 [1]在全局作用域中声明的变量.函数都会变成window对象的属性和方法 var age = 29; function sayAge(){ console.log(this.age); }