1
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
JavaScript類
2
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
類是什麼?
3
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
許多剛接觸程式設計的朋友都可能了解不了類,其實類是對我們這個現實世界的模拟,把它說成“類别”或者“類型”可能會更容易了解一些。比如“人”這種動物就是一個類,而具體某一個人就是“人”這個類的一個執行個體,“人”可以有許多執行個體(地球人超過六十億了),但“人”這個類隻有一個。你或許會說那男人和女人不也是人麼?怎麼隻能有一個?其實這裡要談到一個繼承的東西,後邊才講,請繼續看下去。
4
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
如何建立一個類?
5
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
在C
++
中是以class來聲明一個類的,JavaScript與C
++
不同,它使用了與函數一樣的function來聲明,這就讓許多學Jscript的朋友把類與函數混在一起了,在Jscript中函數與類确實有些混,但使用久了自然而然會了解,這篇文章是針對想進攻面向對象程式設計的朋友而寫,就不打算一下子讨論得太深了。
6
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
請看下邊這個類的定義:
7
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
WuYouUser()
8
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
9
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name;
//
名字
10
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
11
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
上邊的代碼定義了一個WuYouUser(無憂使用者)類,它有個屬性:Name(名字)。Name就是WuYouUser類的一個屬性。
12
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
一個類有固定的屬性,但類的執行個體卻有不同的屬性值,就像我是屬于“人”這個類的,性别是男,而我有一個女同學,她也屬于“人”類,但她的性别屬性值卻為女。
13
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
那麼如何聲明某個類的一個執行個體呢?非常簡單:
14
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
WuYouUser();
//
執行個體一:“我”
15
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Biyuan
=
new
WuYouUser();
//
執行個體二:“碧原”(Biyuan哥,不好意思。。。嘿嘿)
16
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
類的屬性
17
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
這個Wo(我)就是WuYouUser類的一個執行個體,它擁有WuYouUser給它的一切:Name屬性、Sex屬性以及Age屬性,我們可以這樣子來設定它的屬性:
18
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
Wo.Name
=
"
泣紅亭
"
;
19
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
很簡單是不是?試着運作
20
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
window.document.write(Wo.Name);
21
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
看看,是不是輸出了我的名字:泣紅亭?
22
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
同樣設定一下碧原兄的屬性
23
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
Biyuan.Name
=
"
碧原
"
;
24
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
運作
25
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
window.document.write(Biyuan.Name);
26
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以看到輸出了
"
碧原
"
,也就說明了Biyuan與Wo同樣是WuYouUser類的執行個體,但卻是不同的實體,具有不同的屬性值。
27
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
屬性是可以設定預設值的,無憂裡都有記錄大家各自發了多少貼子,我們也同樣給WuYouUser類添加一個發貼數量的屬性ArticleCount
28
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
WuYouUser()
29
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
30
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name;
//
名字
31
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.ArticleCount
=
;
32
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
33
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
一個無憂新使用者剛注冊完之後他的發貼數量為0,在上邊的代碼中可以看到直接給屬性ArticleCount設定值為0。
34
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以運作一下這樣的代碼:
35
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
WuYouUser();
36
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
window.document.write(Wo.ArticleCount);
37
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以看到輸出了0,說明ArticleCount屬性被我們成功設定預設值為0
38
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
類的方法
39
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
方法這個詞不大好了解,我覺得說成行為會更容易了解。一個人具有許多共同的行為,比如睡覺、吃飯、走路等等,現在我們給WuYouUser類添加一個發貼的方法。
40
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
WuYouUser()
41
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
42
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name;
43
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.ArticleCount
=
;
44
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.NewArticle
=
function
()
45
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
46
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
/*
47
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
*
48
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
* 具體如何發貼我們大家都知道,不就是打打字,加加圖檔再按一下儲存之類的按鈕麼?
49
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
* 關于具體如何發貼的代碼沒有必要在這裡寫出來,我們要了解的僅僅是方法的定義與使用
50
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
* 我們在這裡實作一個最簡單的功能,也是很重要的功能:給我們的發貼數量加上1!
51
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
* 注意:恐龍等級就是這樣加出來的,是以呀……大家狂發貼吧。。。
52
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
*/
53
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.ArticleCount
++
;
54
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
55
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
56
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
既然定義好了這個方法,我們來試試效果如何:
57
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
WuYouUser();
58
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
Wo.NewArticle();
59
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.ArticleCount);
60
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以看到輸出了1,說明我們發貼成功了!真是有曆史紀念意義的一刻,離恐龍等級又近一步了。
61
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
靜态屬性
62
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
靜态屬性又稱公共屬性,它不屬于某個類的執行個體,而是直接屬于某個類。
63
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
比如說無憂使用者有一個屬性:注冊使用者的數量,它是屬于整個無憂使用者的,而不是屬于泣紅亭或者誰的
64
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
靜态屬性的聲明方法是:
65
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
類名.prototype.屬性名
=
屬性值;
66
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
比如給WuYouUser類定義一個注冊使用者的數量Count:
67
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
WuYouUser.prototype.Count
=
;
68
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
那麼如何讀取它呢?有兩種方法:
69
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
1
. 直接用 WuYouUser.prototype.Count
70
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
2
. 使用Wo.Count
71
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
這兩者沒有差別,都是得到0
72
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
雖然讀取方法可以有兩種,但在改變它的時候卻得特别小心了,請看下邊代碼
73
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Biyuan
=
new
WuYouUser();
74
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
WuYouUser.prototype.Count
++
;
75
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.Count);
76
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Biyuan.Count);
77
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
你會發現兩者的Count屬性都是1,也就是說WuYouUser.prototype.Count改變了會影響到各個執行個體的相應屬性,其實原理就是Wo、Biyuan的Count屬性與WuYouUser.prototype.Count根本就是同一個!
78
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
現在來看另外一段代碼:
79
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Biyuan
=
new
WuYouUser();
80
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
Biyuan.Count
++
;
//
特别注意一下這裡,這是直接改變Biyuan的Count屬性
81
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Biyuan.Count);
//
輸出 1
82
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(WuYouUser.prototype.Count);
//
輸出 0
83
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.Count);
//
同樣輸出0,為什麼?
84
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以看到如果直接修改執行個體的靜态屬性值,那麼會出現其它執行個體甚至類的靜态屬性與它不同步了?這是因為直接修改的時候,該執行個體會生成一個屬于該執行個體的屬性Count,這個時候Biyuan.Count不再與WuYouUser.prototype.Count是同一個了,也不與Wo.Count是同一個,這個Count屬性是屬于Biyuan自己所有的,以後改變了它也隻是影響它自己而已。
85
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
是以如果不是特别的需要,建議不管在讀取還是指派的時候,都統一使用WuYouUser.prototype.Count這樣的方式,以做到萬無一失!
86
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
靜态方法
87
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
與靜态屬性相似,它也有個另稱:公共方法,同樣屬于類本身的。
88
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
靜态方法的定義方式是:
89
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
類名.方法名
=
function
(參數1,參數2
參數n)
90
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
91
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
//
方法代碼
92
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
93
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
我們現在就來定義一個無憂使用者類的注冊新使用者靜态方法:
94
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
WuYouUser.prototype.AddOne
=
function
()
95
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
96
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
//
*** 同樣具體代碼不寫出來,給靜态屬性Count增加1,表示注冊使用者數量又多一個
97
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
WuYouUser.prototype.Count
++
;
98
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
99
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
現在我們來看看如何用它,同樣有兩種方法:
100
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
1
.直接使用WuYouUser.prototype.AddOne()
101
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
2
.使用某執行個體的AddOne()
102
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
103
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
這兩種方法沒有什麼不同:
104
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
105
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
WuYouUser();
106
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Biyuan
=
new
WuYouUser();
107
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(WuYouUser.prototype.Count);
//
108
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
109
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
Wo.AddOne();
110
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(WuYouUser.prototype.Count);
//
1
111
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.Count);
//
1
112
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Biyuan.Count);
//
1
113
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
114
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
WuYouUser.prototype.AddOne();
115
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(WuYouUser.prototype.Count);
//
2
116
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.Count);
//
2
117
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Biyuan.Count);
//
2
118
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
119
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以看出不管是使用Wo.AddOne()還是WuYouUser.prototype.AddOne()效果都是一樣的,都是給WuYouUser.prototype.Count加上1
120
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
121
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
現在再看一段代碼:
122
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
NewClass()
//
由于上邊的WuYouUser類不合适當這個例子的代碼,我聲明了一個新類NewClass
123
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
124
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name
=
"
泣紅亭
"
;
//
這裡預設值為我的名字
125
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
126
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
127
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
NewClass.prototype.ChangeName
=
function
(NewName)
128
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
129
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name
=
NewName;
130
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
131
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
132
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
NewClass();
133
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
Wo.ChangeName(
"
鄭運濤
"
);
//
我的真名
134
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
135
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以看到Wo.Name确實已經變成了
"
鄭運濤
"
,這個方法似乎是可以用的,但裡邊是不是内有天機呢?
136
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
再看下邊的代碼,類的定義以及ChangeName的定義我們照樣,但改變一下下邊的代碼:
137
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
138
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
NewClass.prototype.ChangeName(
"
鄭運濤
"
);
139
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(NewClass.Name);
//
undefined,即未定義
140
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(NewClass.prototype.Name);
//
鄭運濤
141
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
NewClass();
142
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.Name);
//
泣紅亭
143
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
144
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以看到我們并沒有定義NewClass.prototype.Name這個靜态屬性,但編譯器給我們自己加了一個。
145
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可是再看下邊輸出Wo.Name,它并不是為
"
鄭運濤
"
,而是原來的預設值
"
泣紅亭
"
,說明了什麼?
146
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
其實很簡單,看一下NewClass的定義裡已經有Name這個屬性,是以Wo也有自己的Name屬性,它跟NewClass.prototype.Name并不是同一個的,是以就還是那樣子。
147
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
148
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
那為什麼前一個例子運作了Wo.ChangeName(
"
鄭運濤
"
)卻能夠實作改變Wo.Name屬性呢?其實在這裡跟改變Wo.Count的值是同一個道理,編譯器自動給Wo增加了一個方法ChangeName,這個方法代碼與NewClass.prototype.ChangeName一樣,但Wo.ChangeName是Wo這個執行個體所特有的,而非NewClass.prototype.ChangeName!
149
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
150
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
分析可知道在靜态方法裡盡量不要使用this這樣的關鍵字來引用執行個體本身的屬性,除非你有特别的目的,而且能夠清楚地明白這裡邊的運作機制!
151
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
152
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
如果真的需要在靜态方法裡使用this,可以直接把this當作參數傳進去:
153
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
154
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
NewClass.ChangeName
=
function
(This,NewName)
//
注意這裡是This,不是this
155
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
156
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
This.Name
=
NewName;
157
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
158
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
構造函數
159
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
一個類在初始化的時候其實也是一個函數的執行過程,這個函數就是構造函數,我們看一下下邊的代碼:
160
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
161
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
WuYouUser()
162
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
163
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name
=
"
泣紅亭
"
;
//
預設定義為泣紅亭
164
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
alert(
this
.Name);
165
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
166
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
WuYouUser();
//
可以看到出現一個視窗顯示泣紅亭三個字
167
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
168
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以看出類的定義不僅僅是定義了它的屬性與方法,還同時可以加入一些代碼,而這些代碼就是該類的構造函數的代碼,在執行個體聲明過程中被執行!
169
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
其實說起來,類的屬性與類的方法都是在構造函數裡執行定義的,看下邊的代碼:
170
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
171
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
WuYouUser()
172
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
173
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name
=
"
泣紅亭
"
;
174
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
return
;
175
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Sex
=
"
男
"
;
176
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
177
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
WuYouUser();
178
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.Name);
//
泣紅亭
179
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.Sex);
//
undefined,即未定義
180
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
181
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
看得出什麼?Sex屬性是在return;之後的,而WuYouUser類的構造函數遇到return即停止運作,換句話說this.Sex
=
"
男
"
;這一行是沒有被執行,即Sex屬性根本沒有被定義!
182
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
183
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
構造函數可以有參數,參數值在聲明執行個體的時候被傳入:
184
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
WuYouUser(Name)
185
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
186
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name
=
Name;
187
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
188
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
WuYouUser(
"
泣紅亭
"
);
189
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.Name);
//
泣紅亭
190
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
191
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
構造函數不需要傳回值,但如果你設定了傳回值,可以把它當成一個函數來使用。
192
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
Sum(a, b)
193
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
194
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.a
=
a;
195
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.b
=
b;
196
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
return
this
.a
+
this
.b;
197
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
198
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Sum(
12
,
23
));
//
輸出的是12與23的和35
199
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Obj
=
new
Sum(
12
,
23
);
200
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Obj.a)
//
12
201
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Obj.b)
//
23
202
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
203
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
感覺挺奇妙,對吧?我寫這文章寫着寫着也覺得挺奇妙的,呵呵!
204
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
205
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
但強烈建議不要把一個類當成一個函數來使用!如果你需要的是一個函數,請直接寫成函數而不要寫成類,以免搞混了。
206
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::繼承:::::::::::::::::::::::::::::::::::::::::::::::::::
207
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
繼承這個詞在面向對象的程式設計裡是非常重要的,雖然JavaScript并不是真正面向對象的語言,而是跟VB一樣是基于對象的語言,它同樣提供了繼承機制。
208
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
文章開頭時談到了男人與女人,這也同樣是兩個不同的類,但卻具有相同的一些屬性以及方法,而這些相同的特性是來自“人”這個類的,換句話說男人與女人繼承了“人”的所有特性!但是男人與女人卻有其不同的地方,程式設計語言裡的繼承也一樣,一個類A繼承了另一個類B,那麼類B就是類A的父類,類A就是類B的派生類,也稱為子類。比如男人就是人的派生類,而人就是男人的父類。最高一級的類稱為基類,想象一下就可以明白,男人繼承自人,男孩繼承自男人,人就是男孩的基類,男人就是男孩的父類。
209
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
>>>>>>>>>>>>>>>>>>>>
210
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
題外:多重繼承
211
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
212
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
這裡再涉及一個多重繼承的話題,但如果你僅僅是學JavaScript的話就沒有必要看下去,因為JavaScript不提供多重繼承,準确一點說沒有一種簡單而标準的方法來實作多重繼承(其實是有辦法實作的,隻不過麻煩了一點,而且确實沒有必要)。
213
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
214
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
在C
++
中是有多重繼承的概念的,這裡是讨論JavaScript,是以不打算講,隻是說說它的一點點思想以供參考。
215
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
216
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
在上邊男孩的繼承問題中,男孩其實不僅僅是繼承自男人,還繼承自孩子(有男孩子,也有女孩子)這個類,是以,它同時繼承了兩個類:男人與男孩,這就是所謂的多重繼承。
217
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
218
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
好,這個問題打住,我們還是回歸主題。
219
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
>>>>>>>>>>>>>>>>>>>>
220
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
221
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
先看第一個類的定義:
222
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
223
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
A()
224
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
225
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name
=
"
泣紅亭
"
;
226
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
alert(
this
.Name);
227
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
228
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
229
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
這個類定義了一個屬性Name,預設值為
"
泣紅亭
"
230
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
231
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
現在看第二個類的定義:
232
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
233
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
B()
234
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
235
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Sex
=
"
男
"
;
236
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
alert(
this
.Sex);
237
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
238
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
239
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
定義了一個屬性Sex,預設值為
"
男
"
240
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
241
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
繼承的方式就是 子類.prototype
=
new
父類();
242
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
現在我們來讓B類繼承A類:
243
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
244
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
B.prototype
=
new
A();
245
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
246
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
247
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
248
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
運作這一段代碼:
249
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
250
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Obj
=
new
B();
//
首先打開警告視窗顯示"泣紅亭",再顯示"男"
251
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
252
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以從上邊的結果看出B類繼承了A類,擁有了A類的屬性Name,并且執行了A類的構造函數,而且A類的構造函數在B類的構造函數執行之前執行。是以我們利用這個可以實作重寫父類的方法以及重設定父類某屬性的預設值:
253
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
254
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
A()
255
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
256
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name
=
"
泣紅亭
"
;
257
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Show
=
function
()
258
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
259
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
alert(
"
這是A類的Show方法
"
);
260
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
261
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
alert(
this
.Name);
262
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
263
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
264
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
B()
265
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
266
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name
=
"
鄭運濤
"
;
267
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Show
=
function
()
268
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
269
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
alert(
"
這是B類的Show方法
"
);
270
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
271
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
alert(
this
.Name);
272
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
273
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
274
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Obj
=
new
B();
275
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
Obj.Show();
276
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
277
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
結果出現了三次警告視窗,第一個内容為泣紅亭,是執行A類的構造函數裡的alert(
this
.Name),那時候Name屬性值還為
"
泣紅亭
"
,因為B類的構造函數還沒執行,第二次内容為
"
鄭運濤
"
,這是B類裡的alert(
this
.Name),因為B類的構造函數裡給Name重指派為
"
鄭運濤
"
。最後是調用了Obj.Show(),執行了不是A類的Show方法裡的Show(顯示
"
這是A類的Show方法
"
),而是執行了B類的Show(顯示
"
這是B類的Show方法
"
),很明顯Show方法被重寫了。
278
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
279
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
280
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
類作為一個對象時的屬性與方法(不知道如何簡潔地表達,是以用了這麼長的題目)
281
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
282
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
不知道在這裡談這個話題是否有點混人耳目,但又覺得不談這篇文章就不算完整,因為文章目的就是要讓人搞清楚類的方方面面。
283
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
284
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
看了這一小節的題目,或許你會覺得奇怪,類就是類,怎麼會“作為一個對象”呢?在JavaScript裡,一切都是對象,包括類!對象可以有屬性,可以有方法,類也同樣可以有,但這個非常容易跟前邊說到的靜态屬性與靜态方法搞混了,是以要仔細看清楚兩者的分别!
285
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
286
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
定義一個類:
287
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
function
WuYouUser()
288
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
289
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Name
=
"
泣紅亭
"
;
290
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
291
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
292
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
定義類作為一個對象時的屬性:
293
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
294
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
WuYouUser.Url
=
"
http://www.51js.com
"
;
//
靜态屬性的定義是:WuYouUser.prototype.Url = "http://www.51js.com";
295
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
var
Wo
=
new
WuYouUser();
296
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(WuYouUser.Url);
//
http://www.51js.com
297
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(Wo.Url);
//
undefined,即未定義!注意這裡的未定義
298
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
299
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
從這裡可以看出Url這個屬性是WuYouUser自個所有,改變了它與其它類以及它的子類完全無關!
300
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
301
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
引用類的屬性隻有一個辦法,就是類名.屬性名,改變它也一樣。
302
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
303
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
定義類作為一個對象時的方法:
304
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
305
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
WuYouUser.ChangeUrl
=
function
()
306
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
{
307
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
this
.Url
=
"
http://51js.com
"
;
308
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
}
309
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
310
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
你或許會覺得奇怪,這裡的this是什麼?因為ChangeUrl這個方法是屬于對象WuYouUser的,是以this指的就是WuYouUser本身!
311
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
312
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
可以運作下邊的代碼試試:
313
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
314
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(WuYouUser.Url);
315
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
WuYouUser.ChangeUrl();
316
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
document.write(WuYouUser.Url);
317
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
明顯ChangeUrl直接修改了WuYouUser.Url的值,是以後邊才能輸出http:
//
51js.com
318
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
319
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CN2kzNzY2Y5IGNzEGM0IWZyYzX1MDN0ETM0AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)