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

首頁 > 語言 > JavaScript > 正文

JavaScript 學習筆記(六)

2024-05-06 14:12:03
字體:
來源:轉載
供稿:網友
一、 工廠方式
自己的理解:要創建很多個對象的實例,這些實例有相同的屬性,但是有不同的屬性值。這個時候就需要創個工廠函數(factory function)。
工廠函數(factory function):創建并返回特定類型的對象。
工廠函數中如果一個屬性是方法的話,可以在工廠函數的外面定義對象的方法,然后通過屬性指向該方法,從而可以避開每次都調用自己的屬性方法,這樣做使得每個對象都共享了同一個函數。
示例:
代碼如下:
<script type="text/javascript">
//工廠函數外面定義對象的方法
function ShowNameFn() {
alert(this.Name);
}
//工廠方式創建對象
function CreatBOFn(sName, iAge, bSex) {
var BO = new Object();
BO.Name = sName;
BO.Age = iAge;
BO.Sex = bSex;
BO.ShowName = ShowNameFn; //該屬性實際上是指向函數的指針,是一個方法
return BO;
}
//按鈕測試調用
function FactoryCreateFn() {
var oPerson1 = CreatBOFn("張三", 18, true); //創建實例實際上是直接調用方法
oPerson1.ShowName();
}
</script>

總結:工廠函數這種方式定義類或對象,他在創建實例的時候就調用這個工廠函數。
二、 構造函數方式
第一步選擇類名,即構造函數的名字,BO名首字母大寫,看下面代碼發現跟上面的工廠函數類似。
示例:
代碼如下:
//------第二種:構造函數方式--------------------------------
function Car(color, money) {
this.Color = color;
this.Money = money;
this.ShowMoney = function() {
alert(this.Money);
}
}
//按鈕調用測試
function NewCarFn() {
var Car1 = new Car("紅色", "23萬RMB");
Car1.ShowMoney();
}
//----------------------------------------------------------

比較上一種工廠函數方式的區別:
① 構造函數內部沒有創建對象,而是使用this關鍵字。
② 使用new運算符調用構造函數。
三、 原型方式
利用對象的prototype屬性,可以把他看成創建新對象所依賴的原型,用空構造函數來設置類名,然后所有的屬性和方法都被直接賦予prototype屬性。
原型方式的問題:
首先,這個構造函數沒有參數,使用原型方式時,不能通過給構造函數傳遞參數初始化屬性的值。必須在對象創建后才能改變屬性的默認值。
其次,當屬性指向的是對象,而不是函數時,對象卻被多個實例共享的,其中一個改變將引起其他對象的改變。
示例:
代碼如下:
//先定義一個空的構造函數
function Car() {
}
//屬性和方法直接賦予prototype屬性
Car.prototype.Color = "紅色,";
Car.prototype.Money = "20萬";
Car.prototype.Drivers = new Array("小三", "小四");
var Car1 = new Car();
Car1.Drivers.push("小五"); //實例1中給對象Drivers新增了值(實際上就是在原型里面加了多了個“小五”,所以當new第二個對象的時候讀屬性Drivers也出現了小五)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 龙胜| 涞源县| 铁力市| 丹江口市| 正镶白旗| 蓬莱市| 湘潭县| 壤塘县| 昭平县| 连江县| 建阳市| 乌拉特中旗| 潜江市| 沛县| 南充市| 新龙县| 克拉玛依市| 兴和县| 涟源市| 林周县| 苍南县| 万源市| 安塞县| 秦皇岛市| 安化县| 申扎县| 惠东县| 长兴县| 余庆县| 彭州市| 民县| 海城市| 利辛县| 和林格尔县| 郸城县| 阿克| 浙江省| 玛曲县| 友谊县| 诸城市| 泉州市|