我正在this site上阅读ES2015入门书,这个例子是computed property names给出的:
var _style;
var namespace = '-webkit-';
var style = (
_style = {},
_style[namespace + 'box-sizing'] = 'border-box',
_style[namespace + 'box-shadow'] = '10px 10px 5px #888888',
_style
);
这非常简单,但我不明白Babel正在做什么来解决这个问题。它给出了这个:
_style
(我已经重新格式化了缩进)
Online Babel Transpilation here
我无法找到有关此语法的文档:, _style
对象的声明,然后是属性名称及其值的副本列表,然后在结束parthenthesis之前以$.ajax({
url: 'mail.php',
type: 'post',
data: $this.serialize(),
success: function (data) {
if ( isJSON(data) ) {
// do something
} else {
// do something
}
},
error: function(){
// do something
}
});
结尾。
答案 0 :(得分:6)
在JavaScript中,由于comma operator,括号中的表达式从左到右执行,最后一个表达式的结果将作为结果返回。例如,
keydown
将在三行中打印1,2和3。最后一个值console.log(
(console.log(1), console.log(2), 3)
);
将作为表达式的结果返回,并由外部3
打印。
同样,
console.log
下面,
var style = (
_style = {},
_style[namespace + 'box-sizing'] = 'border-box',
_style[namespace + 'box-shadow'] = '10px 10px 5px #888888',
_style
);
创建一个对象并将其分配给 _style = {},
,
_style
创建一个新属性 _style[namespace + 'box-sizing'] = 'border-box',
并为其分配值
namespace + 'box-sizing'
与上述相同,最后, _style[namespace + 'box-shadow'] = '10px 10px 5px #888888',
将作为评估结果返回。
最后,您将获得一个具有两个属性的对象,该对象绑定到变量_style
。