ES6 中,物件新增了以下擴充套件:
內容簡寫:當物件的內容名和內容值變量名相同時,可以省略內容名的冒號和內容值的變量名,例如:
const
x
=
1
;
const
y
=
2
;
const
obj
=
{
x
,
y
};
方法簡寫:在物件中定義方法時,可以省略
function
關鍵字和冒號,例如:
const
obj
=
{
foo
()
{
// ...
}
};
計算內容名:在定義物件的內容名時,可以使用運算式來計算內容名,例如:
const
obj
=
{
[
'prop'
+
42
]
:
'value'
};
物件解構賦值:可以透過物件解構賦值,快速從物件中提取內容值,例如:
const
{
x
,
y
}
=
obj
;
Object.assign 方法:可以使用
Object.assign
方法,將多個物件合並成一個物件,例如:
const
obj1
=
{
x
:
1
};
const
obj2
=
{
y
:
2
};
const
obj3
=
Object
.
assign
({},
obj1
,
obj2
);
Symbol 型別的內容名:ES6 引入了 Symbol 型別,可以作為內容名,例如:
const
prop
=
Symbol
(
'prop'
);
const
obj
=
{
[
prop
]
:
'value'
};
Proxy 物件:ES6 引入了 Proxy 物件,可以用於攔截物件的操作,例如:
const
proxy
=
new
Proxy
(
obj
,
{
get
(
target
,
prop
)
{
console
.
log
(
`Getting
${
prop
}
...`
);
return
target
[
prop
];
}
});