JavaScript筆記 目錄
ES6 為 {}
物件字面值新增了幾個方便擴充功能,以下只提幾個常用。
簡寫
1. 屬性值簡寫
舉一個簡單的範例來說明。
變數與屬性名相同,這種應用場景很常見:
1
2
3
4
5
6
7
8
|
function foo(a, b) {
return {
a: a,
b: b
};
}
console.log(foo(1, 2)); // {a: 1, b: 2}
|
但在 ES6 環境下,可以這樣寫:
1
2
3
4
5
|
function foo(a, b) {
return { a, b };
}
console.log(foo(1, 2)); // {a: 1, b: 2}
|
當屬性名與值名稱相同時,可以省略後面的值。
或者是:
1
2
3
4
5
|
const foo = 'bar';
const baz = { foo };
// 等同於
const baz = { foo: foo };
|
2. 方法簡寫
定義方法時,都會有 function
宣告。
1
2
3
4
5
6
7
|
const obj = {
foo: function(a) {
console.log(a);
},
};
obj.foo(1); // 1
|
在 ES6 環境下,可以省略這個 function
宣告:
1
2
3
4
5
6
7
|
const obj = {
foo(a) {
console.log(a);
},
};
obj.foo(1); // 1
|
但使用簡寫的方式,函式為不具名,而且無法使用箭頭函式。
屬性名稱
在 ES6 新增了可計算的功能,可以利用 []
包裹運算式,當作鍵名。
1
2
3
4
5
6
7
8
9
|
let prefix = 'foo';
let myObject = {
[prefix + 'bar']: 'hello',
[prefix + 'baz']: 'world'
};
myObject.foobar; // hello
myObject['foobaz']; // world
|