ES6 之对象扩展

属性的简洁表示法:

ES6允许直接写入变量和函数,作为对象的属性和方法,这样写更简洁:

var foo = 'bar';
var baz = {foo};
baz //{foo:'bar'}

//等同于
var baz = {foo: foo}

上面的代码表明,ES6允许在对象之中,只写属性名,不写属性值.这时,属性值等同属性名所代表的变量.

function f(x, y) {
    return {x, y}
}

//等同于
function f(x, y){
    return (x:x, y:y}
}

除了属性简写,方法也可以简写.
 

var 0 = {
    method (){
         return "xxx";
   }
};

//等同于
var o = {
    method: function() {
        return 'xxx";
    }
};

这种写法用于函数的返回值, 将会非常方便:

function getPoint() {
    var x = 1;
    var y = 10;
    return {x, y}:
}

getPoint()
// {x:1, y:10}

属性名表达式

JavaScript 语言定义对象的属性,有两种方法:

//方法一
obj.foo = true;

//方法二
obj['a' + 'bc'] = 123;

上面代码的方法是直接用标识符作为属性名,方法二是用表达式作为属性名,这时要将表达式放在方括号之内.

ES6 允许字面量定义对象时,用方法二(表达式)作为对象的属性名,即把表达式放在方括号内.

let propKey = 'foo';
let obj = {
    [propKey] : trune;
    ['a' + 'bc'] : 123
};

表达式还可以用于定义方法名:

let obj = {
    ['h' + 'ello']() {
        return 'xxx';
    }
};

obj.hello() ///xxx

注意: 属性名表达式 和 简洁表示法,不能同时使用.否则报错.

var foo = 'bar';
var bar = 'abc';
var baz = { [foo] };//报错

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值