国产探花免费观看_亚洲丰满少妇自慰呻吟_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中,這種構造函數也是一種函數,不過是專門用于創建對象而已。

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

圖片精選

主站蜘蛛池模板: 汉阴县| 江安县| 葵青区| 远安县| 昌江| 平山县| 阳原县| 定远县| 龙里县| 武定县| 南和县| 观塘区| 蓬安县| 漳平市| 杂多县| 四会市| 准格尔旗| 六盘水市| 英吉沙县| 康平县| 铜梁县| 镇坪县| 右玉县| 宿松县| 东明县| 南澳县| 北碚区| 蕲春县| 沙坪坝区| 南昌县| 香格里拉县| 康马县| 尉氏县| 西青区| 万宁市| 东光县| 连云港市| 威远县| 衡阳县| 洪湖市| 黄梅县|