我正在读一本名为《雄辩的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);
}

最佳答案

[]放在变量周围仅意味着创建一个数组,其元素就是该变量。然后可以使用

return [headers].concat(body);


等效于:

var array = [];
array[0] = headers;
var new_array = array.concat(body);
return new_array;


该函数正在执行的操作是返回一个数组,该数组的第一个元素是标题行,其余元素是body中的每个数据行。

关于javascript - 直接向对象添加[]是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31523057/

10-13 09:38