6

在用于数组拼接的 CoffeeScript 文档中,尾随的目的是, _ref什么?

咖啡脚本:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers[3..6] = [-3, -4, -5, -6]

编译为:

var numbers, _ref;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
[].splice.apply(numbers, [3, 4].concat(_ref = [-3, -4, -5, -6])), _ref;
4

1 回答 1

7

这是因为 CoffeeScript 的切片操作想要返回它刚刚分配的切片,但splice()反而返回了移除的元素。

因此,为了实现这一点,它将构造编译为代码片段,该代码片段首先将切片分配给局部_ref变量,然后在调用后使用逗号运算符返回该变量splice()

于 2012-07-28T11:11:34.980 回答