《JS高级程序设计》--WEB浏览器中的JS

1.作为全局执行环境的Window对象

web浏览器的主要任务是在一个窗口中显示HTML文档。在客户端JS中,表示HTML文档的是Document对象,Window对象代表显示该文档的窗口。虽然对于客户端JS来说,Document对象和Window对象都很重要,但是相比较而言,Window对象更重要一些。本质上山的原因是Window对象是客户端程序设计的全局对象。

JS的每一个实现都有个全局对象,该对象位于作用域链的头部。这个全局对象的属性也就是全局变量、。JS的window对象是全局对象,他定义了大量的属性和方法,使用户可以对WEb浏览器的窗口进行操作。它还定义了引用其它重要对象的属性,如引用Document对象的Document属性。

     2.客户端的对象层次和文档对象模型

我们知道,Window对象是客户端JS中的一个关键对象。其它所有的客户端对象都和这个对象连接在一起。例如,每个Window对象都包含一个document属性,该属性引用与这个窗口关联在一起的Document对象,location属性引用与该窗口关联在一起的Location对象。此外,Window对象还包含一个Frame[ ]数组,它引用代表原始窗口的框架的Window对象,因此,document代表的是当前窗口的Document对象,而frames[1].document引用的是当前窗口的第二个子框架的Document对象。

由当前窗口或其他Window对象引用的对象本身还可能引用其他的对象。例如,每个Document对象都有一个forms【】数组,它包含的是代表该文档中出现的所有HTML表单的Form对象。要引用这些表单,可以编写如下的代码:
window.document.forms[0];

继续上面的例子,每个Form对象都有一个elements【】数组,该数组包含了出现在表单中的各种HTML表单元素(如输入域、按钮等)的对象,在及其特殊的情况下,可以编写引用整个对象链底部的对象的代码,其表达式的复杂度如下:

parent.frames[0].document.forms[0].elements[3].options[2].text;

也就是说,存在一个JS对象的层次,这个层次的根是一个Window对象。

上图中显示的许多对象都继承了Document对象。大型的客户端对象的层次的子树被成为文档对象模型(DOM)。

3.事件驱动的程序设计模型

过去,计算机程序常常以批处理的模式进行运行。也就是说,他们先读进来一批数据,然后对这批数据进行运算,最后输出计算的结果。随着时间片共享和机遇文本的终端的出现,便开始进行有限的交互,程序要求用户输入,用户输入数据,然后计算机对数据进行处理并且在屏幕上显示出结果。

现在,出现了图形显示和像鼠标这样的点击设备,情况就不同了。程序通常是事件驱动的,用户以鼠标点击的方式和键盘敲击的的方式进行输入,程序则是根据鼠标指针的位置对这种异步的用户输入进行响应。Web浏览器恰恰就是这样一个图形环境。由于一个HTML文档包含嵌入式GUI(图形用户接口),因此客户端JS使用的就是这种事件驱动的程序设计模型。

在客户端JS中,Web浏览器使用事件(event)来通知程序有用户输入。事件的类型很多,比如按键事件、鼠标移动事件等等。当一个事件发生时,Web浏览器会先尝试调用一个合适的事件处理程序来响应那个事件。因此,要编写一个动态、交互性 的客户端JS程序,必须先定义一些适当的事件处理程序,并将他们注册到系统中,这样的浏览器才能在适当的时刻调用它们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值