我正在为我的Web应用程序使用JavaScript和jQuery。在一种情况下,我使用三元运算符来分配对象值时优化代码。
我已将d
值手动设置为true进行测试。但是,此值将根据我的应用程序中客户给定的数据而有所不同。
d=true;
var args = { d ? { target:"div"} : {main:"body"}, status:"enabled", updated:"yes" };
但这不起作用,并引发脚本错误。您能否建议如何以优化的方式更新对象数据。
最佳答案
那是不正确的JavaScript语法,您无法通过这种方式动态定义对象的属性。你可以这样做:
var args = {status:"enabled", updated:"yes"};
d ? (args.target = "div") : (args.main = "body");
在ES2015中,您可以执行以下操作:
var args = {[d ? "target" : "main"]: d ? "div" : "body", status:"enabled", updated:"yes"};