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

首頁 > 語言 > JavaScript > 正文

JavaScript面向對象程序設計創建對象的方法分析

2024-05-06 15:31:41
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript面向對象程序設計創建對象的方法。分享給大家供大家參考,具體如下:

面向對象的語言具有一個共同的標志,那就是具有“類”的概念,但是在javascript中沒有類的概念,在js中將對象定義為“無序屬性的集合,其屬性可以包含基本值,對象或者函數”,即其將對象看作是一組名值對的散列表。這樣問題就來了,如何創建對象呢?

在最開始時使用object構造函數和對象字面量來創建單個對象,下面簡要介紹這兩種方法。

object構造函數:創建自定義對象的最簡單方式就是創建一個object的實例,然后為這個實例添加屬性和方法:

var person=new object();person.name="haha";person.age=20;person.job="搞笑工作者";person.sayName=function(){   alert(this.name);};

在上面的代碼中,定義了一個person對象,并且添加了三個屬性和一個方法,其中方法采用的時函數表達式的方式實現,這是用object構造函數的方式創建一個對象。

對象字面量:

var person={  name:"haha",  age:20,  job:"搞笑工作者",  sayName:function(){    alert(this.name);  }}

以上代碼中同樣創建了一個person對象,這種方法類似于代碼塊的方式,實現了對一個person對象的創建。

以上這兩種方法中,都需要大量重復定義,在我們需要創建對象時就需要重復以上代碼,不夠精煉,所以出現了工廠模式和構造函數模式類創建對象的方法。

工廠模式:

工程模式抽象了創建具體對象的過程(專業書籍中給出),其實說的比較明白點就是采用函數的形式,用函數來封裝創建對象的過程,再創建對象時以調用函數的形式創建。例如:

function createPerson(name,age,job){  var o=new object();  o.name="haha";  o.age=20;  o.job="搞笑工作者";  o.sayName=function(){    alert(this.name);  };  return o;}var person1=createPerson("hehe",22,"呵呵工作者");var person2=createPerson("heihei",23,"嘿嘿工作者");

在這種工廠模式下,將以object構造函數創建對象的方法封裝到了一個函數中,在以后的創建對象的過程中,直接調用此方法就可以創建出一個接著一個的對象。

構造函數模式:

構造函數模式相對于工廠模式的優勢在于構造函數模式可以創建特定類型的對象。

function Person(name,age,job){  this.name=name;  this.age=age;  this.job=job;  this.sayName=function(){    alert(this.name);  };}var person1=new Person("hehe",22,"呵呵工作者");var person2=new Person("heihei",23,"嘿嘿工作者");

在以上代碼中,定義一個Person()的方法,在Person()方法中,將其屬性進行了實例化,這種方法類似于在面向對象語言中在實例化類時直接會調用的構造函數,利用這種方法,將此函數大致相當于面向對象語言中的類,可以在以后的代碼中不斷的實例化,用以不斷創建出此類的對象。在Javascript中,這種構造函數也是一種函數,不過是專門用于創建對象而已。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 四会市| 夏津县| 涿鹿县| 东安县| 东城区| 庆云县| 新沂市| 扬中市| 徐汇区| 句容市| 开封县| 沙坪坝区| 乌恰县| 澜沧| 皮山县| 延安市| 漳平市| 灵山县| 池州市| 大方县| 富阳市| 虞城县| 兰考县| 司法| 万宁市| 三原县| 开阳县| 云霄县| 太仆寺旗| 长沙市| 张家界市| 中方县| 都昌县| 玉溪市| 微山县| 铅山县| 台南县| 福鼎市| 无极县| 南部县| 霍林郭勒市|