日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本篇文章給大家帶來了關于javascript的相關知識,其中主要整理了創建多個對象方法的相關問題,包括了字面量方法、工廠模式方法等等內容,下面一起來看一下,希望對大家有幫助。


JavaScript創建多個對象方法總結


在開發過程中我們經常會遇到需要創建很多個相似的對象,很可能有很多相同的屬性或方法,那我們創建多個對象的方法都有哪些呢?最好的方法有又是哪個呢?一起來來看看吧!

1、創建多個對象——字面量方法

對象的字面量方方式是創建對象最常用的方式之一,以字面量方式創建的對象屬性默認是可寫的、可枚舉、可配置。

如下代碼展示了使用字面量方式創建多個對象:

// 字面量方式創建多個對象
var person1 = {
    name: 'jam',
    age: 18,
    address: '上海市',
    eating: function () {
        console.log(this.name + '在吃飯')
    }
}
var person2 = {
    name: 'tom',
    age: 20,
    address: '北京市',
    eating: function () {
        console.log(this.name + '在吃飯')
    }
}
var person3 = {
    name: 'liming',
    age: 19,
    address: '天津市',
    eating: function () {
        console.log(this.name + '在吃飯')
    }
}

經過上述示例代碼我們可以看出,僅僅創建了3個對象就用了24行,可以看出字面量方式的弊端:創建同樣的對象時,需要編寫重復的代碼太多。

2、創建多個對象——工廠模式方法

工廠模式其實是一種常見的設計模式;

通常我們會有一個工廠方法,通過該工廠方法我們可以產生想要的對象;

如下代碼展示了使用工廠模式方法創建多個對象的操作:

// 工廠函數方式創建多個對象
function createPerson (name, age, address) {
    var p = {}
    p.name = name
    p.age = age
    p.address = address
    p.eating = function () {
        console.log(name + '在吃飯')
    }
    return p
}
 
var p1 = createPerson('jam', 19, '上海市')
var p2 = createPerson('tom', 14, '北京市')
var p3 = createPerson('li', 13, '天津市')
 
p3.eating() // li在吃飯

可以看出使用工廠模式方法創建了三個對象使用的代碼明顯比字面量少了好多行,but這就是最好的方式了嗎?NO! NO! NO!

工廠模式方法的**弊端**就在于:以上述示例代碼為例。當我們打印p1,p2,p3后,獲取不到對象最真實的類型,比如p1是人還是動物還是工具

3、創建多個對象——構造函數方法

構造函數相信大家并不陌生。所謂構造函數,就是提供一個生成對象的模板,并描述對象的基本結構的函數。一個構造函數,可以生成多個對象,每個對象都有相同的結構。

如下代碼展示了使用構造函數方法創建多個對象:

// 約定俗成的規范,構造函數名字首字母大寫
function Person (name, age, address) {
    this.name = name
    this.age = age
    this.address = address
    this.eating = function () {
        console.log(this.name + '在吃飯')
    }
    this.running = function () {
        console.log(this.name + '在跑步')
    }
}
 
var p1 = new Person('jam', 20, '北京市')
var p2 = new Person('tom', 14, '上海市')
var p3 = new Person('li', 13, '天津市')
 
console.log(p1)
// 輸出結果
//  Person {
//     name: 'jam',       
//     age: 20,
//     address: '北京市', 
//     eating: [Function],
//     running: [Function]
//   }
p1.eating()  // jam在吃飯

構造函數有個不成文的規范,那就是構造函數的名字首字母大寫或者駝峰。

構造函數方式并不是最完美的創建多個對象的方式,也是有缺點的。

缺點:每個方法都要在每個實例上重新創建一遍,比如同樣的eating方法和running方法都需要在p1,p2,p3的實例上去創建一遍,浪費很多的內存空間

4、創建多個對象——原型加構造函數方式

二者的組合模式即在構造函數上定義實例屬性,那么在創建對象上只需要傳入這些參數。在原型對象用于定義方法和共享屬性。

如下代碼展示了使用原型加構造函數方式創建多個對象:

function Person (name, age, address) {
    this.name = name
    this.age = age
    this.address = address
    this.eating =
        this.running = function () {
            console.log(this.name + '在跑步')
        }
}
// 將eating方法和running方法加在原型上,就不需要每次創建一個對象都去在內存中加一遍一樣的方法
Person.prototype.eating = function () {
    console.log(this.name + '在吃飯')
}
Person.prototype.running = function () {
    console.log(this.name + '在跑步')
}
var p1 = new Person('jam', 20, '北京市')
var p2 = new Person('tom', 14, '上海市')
var p3 = new Person('li', 13, '天津市')
 
console.log(p1)
// 輸出結果:
//  Person {
//     name: 'jam',       
//     age: 20,
//     address: '北京市', 
//     eating: [Function],
//     running: [Function]
//   }
p1.eating()  // jam在吃飯

最后的當然是壓軸的呀,這種原型和構造函數方式是目前在ECMAScript中使用得最廣泛、認同度最高的一種創建對象的方法。


分享到:
標簽:JavaScript JavaScript多個對象 JavaScript方法
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定