一、window对象
window是BOM的核心对象,表示浏览器的一个实例。在浏览器中,window对象有双重角色,它是通过JS访问浏览器窗口的一个接口,也是Global对象。任何在全局作用域中声明的变量和函数都会变成window对象的属性和方法。
虽然全局变量也是window对象的属性,但是与直接在window上定义的属性也是有点不同。全局变量不能通过delete操作符删除,而直接在window上定义的属性则可以。另外,直接访问未声明的变量会抛出错误,而通过window对象访问则不会,只是返回undefined。
var p1 = 'p1';
window.p2 = 'p2';
delete window.p1; // 无法删除
delete window.p2;
console.log(window.p1); // 输出'p1'
console.log(window.p2); // undefined
console.log(window.p3); // undefined
console.log(p3); // 出错
如果页面中包含框架(frame),则每个框架都有自己的window对象,并且保存在frames集合中,可以通过数值索引或者框架名称来访问相应的window对象。举个例子,对于下面代码,可以使用window.frames[0]或者window.frames[“top”]来访问名字为”top”的框架。
<html>
<head>
<title>Frames</title>
</head>
<frameset rows="160, *">
<frame src="top-frame.html" name="top"></frame>
<frameset