国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Javascript 面向對象 (聲明篇)

2024-05-06 14:10:09
字體:
來源:轉載
供稿:網友
由于才疏學淺,我不得不將《Javascript 高級程序設計》中的部分內容摘抄過來,這些同時也算是我的讀書筆記吧。由于 Javascript 面向對象機制及其的重要,而且內容非常的繁多,在這里就分篇章逐個介紹。

使用對象首先就是聲明它(內置的對象當然就不需要了)。該死的 Javascript 總是會讓我們死去很多的腦細胞,這篇文章主要說明下聲明 Javascript 類的幾種方法。

工廠模式
工廠模式可能是很多開發人員使用的一種模式,簡單的說這種方法先定義“地基”,然后在往上面扔(綁定)各種功能和屬性。下面的代碼可能看起來會非常的熟悉:

代碼如下:
var oCar = new Object;
oCar.color = "red";
oCar.showColor = function() {
alert(this.color);
}
oCar.showColor();


當然,既然包裝成一個類,就要重用它(上面的方法從語法上說僅僅是變量)。可以使用返回特定對象的工廠函數(factory function)將其封裝起來:
代碼如下:
function createCar() {
var oCar = new Object;
oCar.color = "red";
oCar.showColor = function() {
alert(this.color);
}

return oCar;
}
oCar = createCar();
oCar.showColor();

當然,變通一下,可以在 createCar 函數上加入些參數,這樣看起來已經非常地專業了:
代碼如下:
function createCar(sColor) {
var oCar = new Object;
oCar.color = sColor;
oCar.showColor = function() {
alert(this.color);
}

return oCar;
}
oCar = createCar();
oCar.showColor();

匿名函數總是讓人感覺非常的高深,但是有時候也會迷惑了自己。如果不考慮篇幅,可以外部定義它:
代碼如下:
function showColor() {
alert(this.color);
}

function createCar(sColor) {
var oCar = new Object;
oCar.color = sColor;
oCar.showColor = showColor;

return oCar;
}
oCar = createCar();
oCar.showColor();

這樣做還有一個好處,就是不用重復定義 oCar.showColor 了(高效率的程序每個人都喜歡)。

構造函數模式
構造函數其實和工廠方式差不多。從代碼量上來說,就是省略了構造函數內部沒有創建一個對象。
代碼如下:
function Car(sColor) {
this.color = sColor;
this.showColor = function () {
alert(this.color);
}
}
oCar = new Car("red");
oCar.showColor();

其實此隱含的對象已經在 new 以后就被實例化了。默認情況下,構造函數返回的就是其 this 的值(所以不必使用 return 返回)。但構造函數模式和工廠模式一樣可能會重復定義方法,這點可以參考上述工廠模式的做法避免它(始終看起來不完美)。

原型模式
已經受夠重復定義的問題了,那么有沒有完美的解決辦法呢?當然有。使用原型方法可以有效的避免此類的問題。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 西平县| 沧源| 庆安县| 葫芦岛市| 苍溪县| 望城县| 秦皇岛市| 宝应县| 兴文县| 屯门区| 合阳县| 永宁县| 建湖县| 淮南市| 和顺县| 墨竹工卡县| 延寿县| 扎兰屯市| 桐乡市| 西青区| 神池县| 安丘市| 四平市| 崇阳县| 文成县| 炉霍县| 宝坻区| 会同县| 伽师县| 五峰| 鄂伦春自治旗| 海安县| 常熟市| 阜平县| 界首市| 含山县| 醴陵市| 思茅市| 新竹市| 延安市| 左贡县|