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

首頁 > 語言 > JavaScript > 正文

JavaScript創建對象方法實例小結

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

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

最簡單的方式就是創建一個Object對象,并為其添加屬性和方法。

//示例代碼var person=new Object()person.name="yumi"person.age=18person.job="coder"person.sayName=function(){  alert(this.name)}person.sayName()//輸出yumi

這種方式使用同一個接口創建多個對象,會出現大量重復代碼。

1.工廠模式

JavaScript中無法創建類,我們可以用函數來封裝以特定接口創建對象的細節。

//示例代碼function createPerson(name,age,job){  var o=new Object();  o.name=name;  o.age=age;  o.job=job;  o.sayName=function(){    alert(this.name)  };  return o;}var person1=createPerson("yumi",18,"coder");var person2=createPerson("echo",21,"player");person1.sayName();//輸出yumiperson2.sayName();//輸出echo

工廠模式雖然解決了創建多個相似對象的問題,但卻沒有解決對象識別問題,即怎樣知道一個對象的類型。

2.構造函數模式

可以創建自定義的構**造函數,從而定義自定義對象類型的屬性和方法。

//示例代碼function Person(name,age,job){  this.name=name;  this.age=age;  this.job=job;  this.sayName=function(){    alert(name);  }}var person1=new Person("yumi",18,"coder");var person2=new Person("echo",21,"player");person1.sayName();//輸出yumiperson2.sayName();//輸出echo

創建出的對象既是Object的實例,也是Person的實例,也就是說將來我們可以將它的實例標識為特定類型,這也是優于工廠模式的地方。但是構造函數模式也有缺點,即就是每實例化一個對象,對象方法都會創建一遍,我們可以按如下方法稍加改進:

//示例代碼function Person(name,age,job){  this.name=name;  this.age=age;  this.job=job;  this.sayName=sayName;}function sayName(){  alert(name);}var person1=new Person("yumi",18,"coder");var person2=new Person("echo",21,"player");person1.sayName();person2.sayName();

將函數拿到構造函數外部,構造函數內部將sayName屬性設成全局sayName函數(一般單獨的函數名存放的是指向該函數的指針,而函數名加括號為該函數的執行結果)。但這樣做,暴露出的問題是:全局作用域中定義的函數只能被某一個對象調用,不符合全局定義了。而且,如果某個對象有很多方法,這些方法都定義在全局作用域的話,也就沒什么封裝性可言了。

3.原型模式

前面我們說了,構造函數模式的缺點是屬性或方法在構造函數作用域中只能被某個對象調用,想想我們在其他面向對象語言中的處理方式,是將公用的屬性方法定義在父類中,然后通過繼承父類調用。但是JavaScript中不存在類、繼承這些概念,而是通過原型鏈實現“繼承”。

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

圖片精選

主站蜘蛛池模板: 茂名市| 阿拉善右旗| 高碑店市| 红桥区| 高碑店市| 富蕴县| 青龙| 淮阳县| 武川县| 驻马店市| 渝中区| 台北县| 金华市| 朝阳县| 锡林郭勒盟| 重庆市| 长海县| 富裕县| 育儿| 什邡市| 临泉县| 孟村| 苏尼特左旗| 乡宁县| 建始县| 宜兰县| 灵寿县| 义乌市| 宁海县| 武鸣县| 六枝特区| 巴东县| 即墨市| 云霄县| 舟山市| 雷波县| 汉中市| 四子王旗| 金塔县| 临汾市| 育儿|