?? 2.2.2.htm
字號:
<html>
<head>
<title>Untitled Document</title>
<LINK REL ="stylesheet" TYPE = "text/css" HREF = ".../contents.css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<h2 align="center">使用自定義對象</h2>
<p>除了使用各種已經規定好的對象以外,JavaScript 還允許用戶創建自己的對象。以下以一個具體實例說明如何創建和使用一個"書"對象
Book,在此過程中我們將學到一些面向對象編程技術的細節。</p>
<p>
1. 構造函數<p>
要定義一個新的對象,必須定義用于構造該對象的函數。此函數稱為構造函數,其名稱即為對象的類型名稱。構造函數要完成以下兩項工作:
<ul>
<li> 為對象類型的屬性賦值;</li>
<li> 指出作為對象類型方法的函數。</li>
</ul>
<p>
在此示例中,我們定義對象名為 Book,它包含三個屬性:title(書名)、author(作者)、publisher(出版社),以及一個方法:show_book(顯示書的屬性信息)。<p>
構造函數如下:<p>
function Book(title, author, publisher)<p>
{<p>
this.title=title;<p>
this.author=author;<p>
this.publisher=publisher;<p>
this.show_book=show_book;<p>
}<p>
構造函數的參數是用來為對象屬性賦值的,它們不一定要與對象屬性同名,例如,該構造函數也可以寫成:<p>
function Book(x, y, z)<p>
{<p>
this.title=x;<p>
this.author=y;<p>
this.publisher=z;<p>
this.show_book=show_book;<p>
}<p>
不過,習慣上將參數名取為對象的屬性名。this 關鍵字表示當前對象,前三條語句的作用是用對象的參數初始化對象屬性。<p>
最后一條語句用于初始化對象的方法,它的含義是:將 show_book 這個函數指定為對象 Book 的 show_book 方法。顯然,方法的名稱與函數的名稱也可以不同。<p>
2. 定義方法<p>
雖然我們已經指定了對象的方法,但對應于該方法的函數尚未定義。實際上,在編寫程序時,首先應定義方法所對應的函數,然后才能指定方法。<p>
show_book 函數定義如下,其作用只是簡單地顯示書的屬性信息。<p>
function show_book()<p>
{<p>
document.write("<H1>書名:"+this.title+"</H1>");<p>
document.write("<H1>作者:"+this.author+"</H1>");<p>
document.write("<H1>出版社:"+this.publisher+"</H1>");<p>
}<p>
3. 實例化對象<p>
如果要使用這個新創建的對象,必須將其實例化。也就是說,必須使用構造函數構造一個具體的對象。我們使用 new 操作符構造一個對象的實例,如下所示:<p>
MyBook=new Book("JavaScript 實例教程","趙豐年","電子工業出版社");<p>
為了顯示效果,在構造了對象實例之后,我們可以直接引用該對象的方法和屬性,如下所示:<p>
MyBook.show_book();<p>
document.write("<H2>誰是"+MyBook.author+"?</H2>")<p>
4. 完整代碼<p>
<p> <a href="../src/tu2.1.htm" target="_blank">示例</a>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -