在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;
答案 0 :(得分:7)
这是因为CoffeeScript的切片操作想要返回刚刚分配的切片,但是splice()会返回被删除的元素。
因此,为了实现这一点,它将构造编译成一个代码片段,首先将片段分配给本地_ref
变量,然后在调用{{{{}}后使用comma operator返回该变量1}}。