我想在同一行/语句中设置一个选项,并且键和值都在同一行:

以下是多行处理的方法:

var  options = {}
  ,  key = "foo", value = "bar"
  ;
options[key] = value;
myFunction( options ); // object is { "foo" : "bar" }

这是我想做的:
myFunction({key:value}); // object is { "key" : "bar" }

哪个行不通。有没有一种方法可以做到这一点?

最佳答案



当然:

myFunction((obj = {}, obj[key] = value, obj));

这是在这里工作的comma operator。它从左到右评估每个表达式,并返回最后一个表达式的值。请注意,该表达式位于括号(...)内,否则逗号将被解释为参数分隔符。

缺点是obj是全局的,因此总体上可读性较差。

基本上,从技术上讲,这是可能的,但您不应该这样做。多行执行此操作没有错,也没有办法使用对象文字和设置动态键。

09-17 15:14
查看更多