1、
var foo = 'bar';
var baz = {foo};
baz // {foo: "bar"}
// 等同于
var baz = {foo: foo};
2、
function f(x, y) {
return {x, y};
}
// 等同于
function f(x, y) {
return {x: x, y: y};
}
f(1, 2) // Object {x: 1, y: 2}
3、
var o = {
method() {
return "Hello!";
}
};
// 等同于
var o = {
method: function() {
return "Hello!";
}
};
4、
function getPoint() {
var x = 1;
var y = 10;
return {x, y};
}
getPoint()
// {x:1, y:10}
5、
var ms = {};
function getItem (key) {
return key in ms ? ms[key] : null;
}
function setItem (key, value) {
ms[key] = value;
}
function clear () {
ms = {};
}
module.exports = { getItem, setItem, clear };
// 等同于
module.exports = {
getItem: getItem,
setItem: setItem,
clear: clear
};
6、
var obj = {
class () {}
};
// 等同于
var obj = {
'class': function() {}
};
7、
let propKey = 'foo';
let obj = {
[propKey]: true,
['a' + 'bc']: 123
};
8、
var lastWord = 'last word';
var a = {
'first word': 'hello',
[lastWord]: 'world'
};
a['first word'] // "hello"
a[lastWord] // "world"
a['last word'] // "world"
9、
let obj = {
['h'+'ello']() {
return 'hi';
}
};
obj.hello() // hi
10、
var foo = 'bar';
var baz = { [foo]: 'abc'};
11、
3、方法的name属性
函数的name属性,返回函数名。对象方法也是函数,因此也有name属性。
[html] view plain copy
var person = {
sayName() {
console.log(this.name);
},
get firstName() {
return "Nicholas";
}
};
person.sayName.name // "sayName"
person.firstName.name // "get firstName"