您的位置:寻梦网首页编程乐园JavaScriptJavaScript 高级教程
第 1 课 第 2 课 第 3 课 第 4 课 第 5 课

JavaScript高级教程 - 第四课

作者: Thau   

第五页:对象的优点

我们已经看过许多有关 JavaScript 现成的对象和它们的用法的 例子:如 Window, Image, Document, Form 和其他一些 对象。记住:一个对象只不过是一种特殊类型的数据,由属性 和方法组成。属性是对象本身的一些东西,而方法则是能够加 之于对象上的一些操作。

比如, Window 对象有自己的属性,像 window.status, 它可 以被读取与设置。通过把一个字符串设置成 Window 对象的 status 属性,这个字符串将会显示在窗口的状态条里。 Window 也有自己的方法,如 window.focus(), 即把窗口聚焦弹到前面。 如果你对这些都不熟悉的话,你也许该去看看基础教程第五天 的课程。

使用对象给我们组织信息提供了一个很好的手段。首先我们看 看现实生活中的对象。比如说,一只猴子就是一个对象。它有 高度,宽度,毛发等等属性。所有的猴子都有相同的这些属性 类型,是属性的值的不同才使一只猴子与其它猴子区别开来。 猴子也有自己的方法,如玩儿 play() ,吃 eat() ,睡 sleep() 等。

对象很好理解还因为它能够保持有关词的“感觉”。例如 JavaScript 中的聚焦方法 focus() ,很显然就是使什么东西成为 焦点。当聚焦方法作用到窗口对象时,它使该窗口弹到前面。 而模糊则做相反的事儿。你可以试试:

打开一个小窗口

按下面的链接来看看小窗口如何弹到前面: little_window.focus() 小窗口聚焦 ;

但当你把聚焦方法作用到一个文本框时,它使该文本框出现一 个等待你输入的光标。

激活第一个文本框 : window.document.the_form.the_first_text.focus(); 激活第二个文本框 : window.document.the_form.the_second_text.focus();

奇怪吗 ? JavaScript 知道对窗口的聚焦和对文本框的聚焦做的 不是一件事。在这两种情况里,聚焦的意思是一样的,所以很 自然都用了聚焦这个名字。但同样的聚焦方法对不同的对象会 做略微不同的事,这也很好理解。这种同一个方法因对象不同 而做不同的事情称为“多态性”,这也是面向对象程序设计的 基础。

就象同样的方法因对象不同而表现不同一样,对于不同的对象, 同样的属性也可以意味着不同的意思。比如 length 属性,在字 符串和数组两类对象中都有这个属性。 string.length 返回的是 字符串的长度,而 array.length 返回的则是数组的元素个数。 两个的属性都叫 length ,但它们的意义随对象的不同而略有差 别。

使用对象也使得代码的拷贝与粘贴更容易了。如果你有一个很 好的对象库,你可以直接把整个对象拷贝下来用在你自己的 script 中任何需要的地方,如果你没有一个组织得很清晰的对象库要 作到这一点就难多了。

既然对象这么好用, JavaScript 给你提供了创建自己对象的 能力。>>

JavaScript高级教程
第一页 JavaScript高级教程- 第4天
第二页 图象映射与JavaScript
第三页 预装图象 - 是什么?
第四页 预装图象 - 怎么做?
第五页 对象的优点
第六页 创建你自己的对象
第七页 你的面向对象的虚拟宠物
第八页 计算字符串
第九页 获取难以索引的对象
第十页 另一种获取难以索引的对象的手段
第十一页 第四天课程复习

[第1课][第2课][第3课][第4课][第5课]

来源: Wired Digital Inc.