麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

JavaScript 面向對象編程(2) 定義類

2024-05-06 14:09:58
字體:
來源:轉載
供稿:網友
本文承接上一篇JavaScript面向對象編程(1) 基礎。
上篇說過,JavaScript沒有類的概念,需要通過函數來實現類的定義。先通過一個例子說明:
代碼如下:
function myClass()
{
var id = 1;
var name = "johnson";
//properties
this.ID = id;
this.Name = name;
//method
this.showMessage = function()
{
alert("ID: " + this.ID + ", Name: " + this.Name);
}
}
var obj1 = new myClass();
var obj2 = new myClass();

function的定義實際上相當于類的構造函數,最后兩句是創建這個類的實例。先分析第一句:var obj1 = new myClass(); 當用new創建類的實例時,解釋器首先會創建一個空的對象。然后運行這個myClass函數,并將this指針指向這個類的實例。當碰到this.ID = id;和this.Name = name;及this.showMessage = function(){...}時,便會創建這兩個屬性,和這個方法,并把變量id,name的值一級函數的定義賦給這兩個屬性及這個函數對象(shwoMessage)。這個過程相當于初始化這個對象,類似于C# 中的構造函數。最后new返回這個對象。再看第二句:var obj2 = new myClass(); 執行過程與上一句代碼相同,即創建一個空對象,然后執行myClass這個函數,定義兩個屬性和一個方法。
從上面的分析中可以看到,上面這種實現類的方式,即在函數的定義中定義類的屬性方法。存在著弊端。如果需要創建兩個或更多這個類的實例時,上文是兩個,這些屬性會被重復的創建多次。
那么如何避免這種情況呢?上一篇中也曾提到過用prototype。prototype和它的名字一樣是一個原型,每一個function都有一個子對象prototype,它其實表示這個function對象的成員的集合,由于這里我們使用function實現類的,所以可以說prototype其實就是便是類的成員的集合。prototype定義的屬性和方法執行在函數的構造體執行之前,所以當new一個對象之前,其實prototype的成員已經執行過了。先看一個例子:
代碼如下:
function myClass()
{
//構造函數
}
myClass.prototype =
{
ID: 1,
Name: "johnson",
showMessage: function()
{
alert("ID: " + this.ID + ", Name: " + this.Name);
}
}
var obj1 = new myClass();
var obj2 = new myClass();

類的結構還是和前面的例子相同,只不過這里是利用了prototype來實現。還是先看最后兩句,前面說過,prototype是執行在函數構造體之前,即執行到var obj1 = new myClass();之前,這個類已經有了ID,Name屬性和showMessage方法。執行者一句時執行過程如下,注意和前一個例子比較:首先還是創建一個空的對象,并把this指針指向這個對象。然后將函數的prototype對象的所有成員都賦給這個對象(注意沒有再創建這些成員)。然后執行函數體。最后new返回這個對象。執行下一句時:同樣執行此過程,不會重復創建這些成員。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 欧美精品在线免费观看 | 一级一片免费看 | 国产分类视频 | 日本大片在线播放 | 久久免费视频精品 | 日本aⅴ在线 | 99影视电影电视剧在线播放 | 久久精品亚洲国产奇米99 | 一级美女大片 | av人人| 2017亚洲男人天堂 | 免费看黄色一级大片 | 中文字幕在线观看视频www | 色屁屁xxxxⅹ在线视频 | 欧美精品亚洲人成在线观看 | 在线观看视频毛片 | 亚洲第九十九页 | 欧美精品日日鲁夜夜添 | 成人在线免费看 | 一区小视频 | 国产porn在线 | 在线播放黄色网址 | 91久久99热青草国产 | 综合日韩欧美 | 国产精品久久久久久久av | 性欧美在线视频 | 欧美一级视频网站 | 欧美日韩高清在线观看 | 玩偶姐姐 在线观看 | 国产色片在线观看 | 舌头伸进添的我好爽高潮网站 | 欧美三级一级 | 久久亚洲成人网 | 久久视频精品 | 精品一区二区久久久久久久网精 | 日本中文字幕高清 | 日韩电影一区二区三区 | 麻豆一区二区99久久久久 | 国产交换3p国产精品 | 久久久久久久久久美女 | 天天色宗合 |