使用coffeescript进行数组拼接,_ref是什么用于?

时间:2012-07-28 11:06:52

标签: javascript coffeescript apply array-splice

array splicing的CoffeeScript文档中,尾随, _ref的目的是什么?

CoffeeScript的:

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;

1 个答案:

答案 0 :(得分:7)

这是因为CoffeeScript的切片操作想要返回刚刚分配的切片,但是splice()会返回被删除的元素。

因此,为了实现这一点,它将构造编译成一个代码片段,首先将片段分配给本地_ref变量,然后在调用{{{{}}后使用comma operator返回该变量1}}。