我正在读一本名为Eloquent Javascript的书。
在第6章中,我发现了一个我无法理解的语法,[ ]
可以直接添加到对象中。
这种用法意味着什么?
function UnderlinedCell(inner) {
this.inner = inner;
};
UnderlinedCell.prototype.minWidth = function() {
return this.inner.minWidth();
};
UnderlinedCell.prototype.minHeight = function() {
return this.inner.minHeight() + 1;
};
UnderlinedCell.prototype.draw = function(width, height) {
return this.inner.draw(width, height - 1)
.concat([repeat("-", width)]);
};
function dataTable(data) {
var keys = Object.keys(data[0]);
var headers = keys.map(function(name) {
return new UnderlinedCell(new TextCell(name));
});
var body = data.map(function(row) {
return keys.map(function(name) {
return new TextCell(String(row[name]));
});
});
return [headers].concat(body);
}
答案 0 :(得分:1)
将Model
放在变量周围只是意味着创建一个元素是该变量的数组。然后可以使用
[]
相当于:
return [headers].concat(body);
该函数正在做的是返回一个数组,其第一个元素是标题行,其余元素是var array = [];
array[0] = headers;
var new_array = array.concat(body);
return new_array;
中的每个数据行。
答案 1 :(得分:0)
使用行return [headers].concat(body);
,您可以说变量"标题"是一个数组。这样你可以调用它上面的concat()函数。
您通常不需要括号,但在这种情况下,您希望连接数组" header"和"身体"进入一个新阵列"标题"。
希望我能回答你的问题。