Javascript 为什么obj={x,y}在Chrome中工作?
显然这是我的打字错误,Javascript 为什么obj={x,y}在Chrome中工作?,javascript,ecmascript-6,Javascript,Ecmascript 6,显然这是我的打字错误,{x,y}应该是{x:x,y:y}。但是它实现了我想要的,在Chrome中,fieldx获取局部变量的值x 但为什么它能工作呢?ES2015增强了对象文字符号。支持这一点(部分) 有很好的解释。它是ECMAScript 2015(或ECMAScript 6)的一部分。只需指定标识符,就可以在对象文字中的对象中创建新属性 引用 对于ECMAScript 6,可以使用更短的符号来实现相同的功能: var obj = { type: 'data', x, y, data: []}
{x,y}
应该是{x:x,y:y}。但是它实现了我想要的,在Chrome中,fieldx
获取局部变量的值x
但为什么它能工作呢?ES2015增强了对象文字符号。支持这一点(部分)
有很好的解释。它是ECMAScript 2015(或ECMAScript 6)的一部分。只需指定标识符,就可以在对象文字中的对象中创建新属性 引用 对于ECMAScript 6,可以使用更短的符号来实现相同的功能:
var obj = { type: 'data', x, y, data: []}
ECMAScript 6规范中的相应部分是 AssignmentProperty:IdentifierReference初始值设定项Opt
var a = "foo",
b = 42,
c = {};
// Shorthand property names (ES6)
var o = { a, b, c };
版本43.0.2357.81构建在Ubuntu 14.04上,运行在LinuxMint 17.1(64位)上
var a = "foo", b = 42, c = {}, d = function () {};
console.log({a, b, c, d});
// { a: 'foo', b: 42, c: {}, d: [Function] }