Object
属性的简单表示法
var foo = 'foo';
var bar = {foo}; // bar = {foo: 'foo'}
function f(x, y){
return {x, y};
}
f(1, 2) // {x: 1, y: 2}
方法的简写
var o = {
method(){ // 省略'function'关键字
return 'hello';
}
}
属性名表达式
let foo = 'bar';
let obj = {
[foo]: true,
['a' + 'b']: 1,
['h' + 'ello'](){
return 'hi'
}
}
is()
assign(target, ...source)
- 将源对象(source)的所有可枚举属性,复制到目标对象(target)。
- 如果该参数不是对象,则会先转成对象,然后返回。
typeof Object.assign(2) // "object" Number对象
- 由于undefined和null无法转成对象,所以如果它们作为参数,就会报错。
- 其他类型的值(即数值、字符串和布尔值)不在首参数,也不会报错。但是,除了字符串会以数组形式,拷贝入目标对象,其他值都不会产生效果。
var v1 = 'abc';
var v2 = true;
var v3 = 10;
var obj = Object.assign({}, v1, v2, v3);
console.log(obj); // { "0": "a", "1": "b", "2": "c" }
var obj1 = {a: {b: 1}};
var obj2 = Object.assign({}, obj1);
obj1.a.b = 2;
obj2.a.b // 2