为什么myVar1
和myVar2
在JavaScript中不同?
var myVar1 = {"foo" : "bar"};
var foo = "foo";
var myVar2 = {foo : "bar"};
myVar1 == myVar2 // gives false
此外,如果我尝试将foo
显式转换为String
(例如下面的示例),则会产生错误并声称“:”不应在此处(以下示例)。
var myVar2 = {String(foo) : "bar"};
在another answer中,我读到{x: y}
是一个对象常量,但是找不到关于我的问题的很多信息。
我正试图做的就是在DataTables中插入可变数量的列。我正在获取指定列类型和名称的JSON。然后我这样做:
// Send AJAX request, save result to var parsed
var columns = [];
for (var i=0; i < parsed.length; i++) {
var col = { "mData" : parsed[i].name};
columns.push(col);
});
// Create Datatable
var table = $('#importTable').DataTable({
"sAjaxSource": "/importColumns",
"sAjaxDataProp": "",
"order": [[ 0, "asc" ]],
"aoColumns": columns
});
以上工作原理,但有时我想使用与mData
不同的字符串。
在这种情况下:
// JSON object has 2 fields - type and name
var col = { parsed[i].type : parsed[i].name};
但这似乎不起作用。 DataTables
给我警报,例如:
DataTables警告:表id = importTable-请求的未知参数'0'用于第0行第0列。
当我尝试显式转换为String时:
var col = { String(parsed[i].type) : parsed[i].name};
我得到:
未捕获的SyntaxError:意外令牌: