dth*_*ree 4 javascript syntax shorthand
拿下面的对象:
var value = 'bar';
var obj = { foo: value }
// -> Object { foo="bar" }
Run Code Online (Sandbox Code Playgroud)
假设密钥也是一个变量,可以去:
var key = 'foo', value = 'bar';
var obj = {}
obj[key] = value;
// -> Object { foo="bar" }
Run Code Online (Sandbox Code Playgroud)
现在,我想在一行(速记)中这样做.所以我尝试过:
var obj = {}[key] = value; // or,
var obj = ({})[key] = value; // or,
var obj = new Object()[key] = value;
// -> "bar"
Run Code Online (Sandbox Code Playgroud)
这奇怪地产生一个String而不是一个Object.
有没有办法做这个简写?
ECMAScript 6将允许您这样做
var obj = {
[key]: value
};
Run Code Online (Sandbox Code Playgroud)
浏览器支持还不是很好,但是像6to5这样的转发器允许你今天使用这种表示法!
你可以,或几乎可以.如果将对象的创建及其赋值obj放在括号中,则可以设置该表达式结果的属性:
var obj, key='foo', value = 'bar';
(obj = {})[key] = value;
alert(obj); // [object Object]
alert(obj.foo); // barRun Code Online (Sandbox Code Playgroud)
该var关键字不能包含在括号内的表达,所以要么你将收到申报OBJ(像我一样),或者没有声明它在所有接受,这将是在全球范围内.
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |