今天我們來看物件實體語法object literals
JS可以透過new Object()
來建立物件,但開發時相對少見這種寫法。
這是因為JS還有另一種更快建立物件的方法,就是物件實體語法object literals
。
什麼是物件實體語法呢?
來看看以下程式碼:
var Batman = {};
用一對大括號{}
快速建立物件,大家最常用的就是這種寫法(我也是)。
這種寫法的好處在於可以同時建立屬性和方法:
var Batman = {
firstname: 'Bruce',
lastname: 'Wayne'
};
使用物件實體語法和這種寫法
var Batman = new Object();
Batman['firstname'] = 'Bruce';
Batman['lastname'] = 'Wayne';
兩者其實是一樣的
物件實體語法的好處在於可以快速、直觀的建立物件、屬性和方法,早期沒有物件實體語法,使用[]
計算取用成員運算子來建立物件很常見,而現在最常見的方式則是使用物件實體語法{}
。
另外變數[屬性]
這種寫法並非被淘汰掉,有些地方還是看的到,例如我上次見到是在學node.js的時候,這種方式的優點是可以使用變數的方式來替換操作,還是挺有妙用的。
當有函式需要傳參數進去時,也是可以使用物件實體語法:
var dinner = {
meat:'牛肉',
vegetables:'菠菜'
};
function today(food){
console.log('今天吃' + food.vegetables);
}
today(dinner)
除了today(dinner)
這種呼叫,函式傳值也可以這樣:
today({ meat:'牛肉',vegetables:'菠菜'})
結果是一樣的,這種傳物件的方式其實也很常常見到。
小結
今天複習了建立物件最快速的物件實體語法object literals
,也知悉函式傳值可以直接用用物件實體語法。
至於筆記內容可以參照Udemy課程:JavaScript 全攻略:克服JS 的奇怪部分4-31