ES6-Object

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
posted @ 2016-06-23 10:22  DDFE  阅读(339)  评论(0编辑  收藏  举报