91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-21 19:43:13 來源:腳本之家 閱讀:143 作者:hiyanxu 欄目:web開發

本文實例講述了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中,這種構造函數也是一種函數,不過是專門用于創建對象而已。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连平县| 梁平县| 兴和县| 朝阳市| 博客| 青铜峡市| 宁城县| 禄劝| 巴里| 乌苏市| 梅州市| 武陟县| 棋牌| 灵宝市| 山东| 青岛市| 财经| 东阿县| 卓尼县| 文登市| 日喀则市| 汤原县| 九江市| 巴青县| 涿鹿县| 长春市| 阿拉善左旗| 崇义县| 盱眙县| 五常市| 兰州市| 彰化市| 浪卡子县| 饶平县| 莱西市| 维西| 景洪市| 当阳市| 五寨县| 北流市| 延寿县|